本文整理汇总了C++中CGUIWindow::GetOverlayState方法的典型用法代码示例。如果您正苦于以下问题:C++ CGUIWindow::GetOverlayState方法的具体用法?C++ CGUIWindow::GetOverlayState怎么用?C++ CGUIWindow::GetOverlayState使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CGUIWindow
的用法示例。
在下文中一共展示了CGUIWindow::GetOverlayState方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnMessage
bool CGUIDialog::OnMessage(CGUIMessage& message)
{
switch ( message.GetMessage() )
{
case GUI_MSG_WINDOW_DEINIT:
{
CGUIWindow *pWindow = m_gWindowManager.GetWindow(m_gWindowManager.GetActiveWindow());
if (pWindow)
m_gWindowManager.ShowOverlay(pWindow->GetOverlayState());
CGUIWindow::OnMessage(message);
// if we were running, make sure we remove ourselves from the window manager
if (m_bRunning)
{
m_gWindowManager.RemoveDialog(GetID());
m_bRunning = false;
m_dialogClosing = false;
m_autoClosing = false;
}
return true;
}
case GUI_MSG_WINDOW_INIT:
{
CGUIWindow::OnMessage(message);
m_showStartTime = timeGetTime();
return true;
}
}
return CGUIWindow::OnMessage(message);
}
示例2: OnMessage
bool CGUIPythonWindowXMLDialog::OnMessage(CGUIMessage &message)
{
if (message.GetMessage() == GUI_MSG_WINDOW_DEINIT)
{
CGUIWindow *pWindow = g_windowManager.GetWindow(g_windowManager.GetActiveWindow());
if (pWindow)
g_windowManager.ShowOverlay(pWindow->GetOverlayState());
return CGUIWindow::OnMessage(message);
}
return CGUIPythonWindowXML::OnMessage(message);
}
示例3: OnMessage
bool CGUIDialog::OnMessage(CGUIMessage& message)
{
switch ( message.GetMessage() )
{
case GUI_MSG_WINDOW_DEINIT:
{
CGUIWindow *pWindow = g_windowManager.GetWindow(g_windowManager.GetActiveWindow());
if (pWindow)
g_windowManager.ShowOverlay(pWindow->GetOverlayState());
CGUIWindow::OnMessage(message);
return true;
}
case GUI_MSG_WINDOW_INIT:
{
CGUIWindow::OnMessage(message);
m_showStartTime = 0;
return true;
}
}
return CGUIWindow::OnMessage(message);
}
示例4: ActivateWindow_Internal
void CGUIWindowManager::ActivateWindow_Internal(int iWindowID, const vector<CStdString>& params, bool swappingWindows)
{
// translate virtual windows
// virtual music window which returns the last open music window (aka the music start window)
if (iWindowID == WINDOW_MUSIC)
{
iWindowID = g_settings.m_iMyMusicStartWindow;
// ensure the music virtual window only returns music files and music library windows
if (iWindowID != WINDOW_MUSIC_NAV)
iWindowID = WINDOW_MUSIC_FILES;
}
// virtual video window which returns the last open video window (aka the video start window)
if (iWindowID == WINDOW_VIDEOS || iWindowID == WINDOW_VIDEO_FILES)
{ // backward compatibility for pre-Eden
iWindowID = WINDOW_VIDEO_NAV;
}
if (iWindowID == WINDOW_SCRIPTS)
{ // backward compatibility for pre-Dharma
iWindowID = WINDOW_PROGRAMS;
}
if (iWindowID == WINDOW_START)
{ // virtual start window
iWindowID = g_SkinInfo->GetStartWindow();
}
// debug
CLog::Log(LOGDEBUG, "Activating window ID: %i", iWindowID);
if (!g_passwordManager.CheckMenuLock(iWindowID))
{
CLog::Log(LOGERROR, "MasterCode is Wrong: Window with id %d will not be loaded! Enter a correct MasterCode!", iWindowID);
if (GetActiveWindow() == WINDOW_INVALID && iWindowID != WINDOW_HOME)
ActivateWindow(WINDOW_HOME);
return;
}
// first check existence of the window we wish to activate.
CGUIWindow *pNewWindow = GetWindow(iWindowID);
if (!pNewWindow)
{ // nothing to see here - move along
CLog::Log(LOGERROR, "Unable to locate window with id %d. Check skin files", iWindowID - WINDOW_HOME);
return ;
}
else if (pNewWindow->IsDialog())
{ // if we have a dialog, we do a DoModal() rather than activate the window
if (!pNewWindow->IsDialogRunning())
{
CSingleExit exitit(g_graphicsContext);
((CGUIDialog *)pNewWindow)->DoModal(iWindowID, params.size() ? params[0] : "");
}
return;
}
g_infoManager.SetNextWindow(iWindowID);
// set our overlay state
HideOverlay(pNewWindow->GetOverlayState());
// deactivate any window
int currentWindow = GetActiveWindow();
CGUIWindow *pWindow = GetWindow(currentWindow);
if (pWindow)
CloseWindowSync(pWindow, iWindowID);
g_infoManager.SetNextWindow(WINDOW_INVALID);
// Add window to the history list (we must do this before we activate it,
// as all messages done in WINDOW_INIT will want to be sent to the new
// topmost window). If we are swapping windows, we pop the old window
// off the history stack
if (swappingWindows && m_windowHistory.size())
m_windowHistory.pop();
AddToWindowHistory(iWindowID);
g_infoManager.SetPreviousWindow(currentWindow);
// Send the init message
CGUIMessage msg(GUI_MSG_WINDOW_INIT, 0, 0, currentWindow, iWindowID);
msg.SetStringParams(params);
pNewWindow->OnMessage(msg);
// g_infoManager.SetPreviousWindow(WINDOW_INVALID);
}
示例5: PreviousWindow
void CGUIWindowManager::PreviousWindow()
{
// deactivate any window
CSingleLock lock(g_graphicsContext);
CLog::Log(LOGDEBUG,"CGUIWindowManager::PreviousWindow: Deactivate");
int currentWindow = GetActiveWindow();
CGUIWindow *pCurrentWindow = GetWindow(currentWindow);
if (!pCurrentWindow)
return; // no windows or window history yet
// check to see whether our current window has a <previouswindow> tag
if (pCurrentWindow->GetPreviousWindow() != WINDOW_INVALID)
{
// TODO: we may need to test here for the
// whether our history should be changed
// don't reactivate the previouswindow if it is ourselves.
if (currentWindow != pCurrentWindow->GetPreviousWindow())
ActivateWindow(pCurrentWindow->GetPreviousWindow());
return;
}
// get the previous window in our stack
if (m_windowHistory.size() < 2)
{ // no previous window history yet - check if we should just activate home
if (GetActiveWindow() != WINDOW_INVALID && GetActiveWindow() != WINDOW_HOME)
{
ClearWindowHistory();
ActivateWindow(WINDOW_HOME);
}
return;
}
m_windowHistory.pop();
int previousWindow = GetActiveWindow();
m_windowHistory.push(currentWindow);
CGUIWindow *pNewWindow = GetWindow(previousWindow);
if (!pNewWindow)
{
CLog::Log(LOGERROR, "Unable to activate the previous window");
ClearWindowHistory();
ActivateWindow(WINDOW_HOME);
return;
}
// ok to go to the previous window now
// tell our info manager which window we are going to
g_infoManager.SetNextWindow(previousWindow);
// set our overlay state (enables out animations on window change)
HideOverlay(pNewWindow->GetOverlayState());
// deinitialize our window
CloseWindowSync(pCurrentWindow);
g_infoManager.SetNextWindow(WINDOW_INVALID);
g_infoManager.SetPreviousWindow(currentWindow);
// remove the current window off our window stack
m_windowHistory.pop();
// ok, initialize the new window
CLog::Log(LOGDEBUG,"CGUIWindowManager::PreviousWindow: Activate new");
CGUIMessage msg2(GUI_MSG_WINDOW_INIT, 0, 0, WINDOW_INVALID, GetActiveWindow());
pNewWindow->OnMessage(msg2);
g_infoManager.SetPreviousWindow(WINDOW_INVALID);
return;
}
示例6: ActivateWindow_Internal
void CGUIWindowManager::ActivateWindow_Internal(int iWindowID, const vector<CStdString>& params, bool swappingWindows)
{
/*
参数:
1、iWindowID : 要激活的窗体id 号
2、params : 传递给窗体的参数
3、swappingWindows : 是否交换激活窗体( 见下面对此参数的说明)
返回:
1、
说明:
1、激活窗体的原则:
A、根据传入的窗体id 找到要激活的窗体指针
1) 没找到
a、直接出错返回
2) 找到了
a、如果是一个对话框,则调用对话框的DoModal 方法将对话框显示,然后返回
b、执行下面的B 步骤
B、
C、
2、参数swappingWindows 的作用:
假设:
AAA : 原来激活的窗体,即当前激活窗体
BBB : 要激活的窗体
true : 将BBB 窗体激活,将AAA 窗体从窗体操作栈出栈,将BBB 窗体添加到窗体操作栈
false : 将BBB 窗体激活,不将AAA 窗体从窗体操作栈出栈,将BBB 窗体添加到窗体操作栈
*/
// translate virtual windows
// virtual music window which returns the last open music window (aka the music start window)
if (iWindowID == WINDOW_MUSIC)
{
iWindowID = g_settings.m_iMyMusicStartWindow;
// ensure the music virtual window only returns music files and music library windows
if (iWindowID != WINDOW_MUSIC_NAV)
iWindowID = WINDOW_MUSIC_FILES;
}
// virtual video window which returns the last open video window (aka the video start window)
if (iWindowID == WINDOW_VIDEOS || iWindowID == WINDOW_VIDEO_FILES)
{ // backward compatibility for pre-Eden
iWindowID = WINDOW_VIDEO_NAV;
}
if (iWindowID == WINDOW_SCRIPTS)
{ // backward compatibility for pre-Dharma
iWindowID = WINDOW_PROGRAMS;
}
if (iWindowID == WINDOW_START)
{ // virtual start window
iWindowID = g_SkinInfo->GetStartWindow();
}
// debug
CLog::Log(LOGDEBUG, "Activating window ID: %i", iWindowID);
if (!g_passwordManager.CheckMenuLock(iWindowID))
{
CLog::Log(LOGERROR, "MasterCode is Wrong: Window with id %d will not be loaded! Enter a correct MasterCode!", iWindowID);
if (GetActiveWindow() == WINDOW_INVALID && iWindowID != WINDOW_HOME)
ActivateWindow(WINDOW_HOME);
return;
}
// first check existence of the window we wish to activate.
CGUIWindow *pNewWindow = GetWindow(iWindowID);/* 获取要激活的窗体*/
if (!pNewWindow)/* 没得到*/
{ // nothing to see here - move along
CLog::Log(LOGERROR, "Unable to locate window with id %d. Check skin files", iWindowID - WINDOW_HOME);
return ;
}
else if (pNewWindow->IsDialog()) /* 如果要激活的窗体是个对话框*/
{ // if we have a dialog, we do a DoModal() rather than activate the window
if (!pNewWindow->IsDialogRunning())/* 对话框没有在运行状态,则将其模态显示出来*/
{
CSingleExit exitit(g_graphicsContext);
((CGUIDialog *)pNewWindow)->DoModal(iWindowID, params.size() ? params[0] : "");
}
return;
}
//-------------------------------------------------------->>> 调用SetNextWindow 开始
g_infoManager.SetNextWindow(iWindowID); /* 设定要激活的窗体的id 为下一个窗体id ,即相当于全局变量保存这个值*/
// set our overlay state
HideOverlay(pNewWindow->GetOverlayState());
// deactivate any window
int currentWindow = GetActiveWindow();
CGUIWindow *pWindow = GetWindow(currentWindow);
if (pWindow)
CloseWindowSync(pWindow, iWindowID);
//-------------------------------------------------------->>> 调用SetNextWindow 结束
g_infoManager.SetNextWindow(WINDOW_INVALID); /* 设定下一个窗体id 为无效的*/
//.........这里部分代码省略.........
示例7: PreviousWindow
void CGUIWindowManager::PreviousWindow()
{
/*
参数:
1、
返回:
1、
说明:
1、此函数实现激活上一个窗体的功能
2、函数执行的原理:
根据窗体操作栈(m_windowHistory) 来实现的
*/
// deactivate any window
CSingleLock lock(g_graphicsContext);
CLog::Log(LOGDEBUG,"CGUIWindowManager::PreviousWindow: Deactivate");
int currentWindow = GetActiveWindow(); /* 获取当前激活窗体的id 号*/
CGUIWindow *pCurrentWindow = GetWindow(currentWindow); /* 获取当前激活窗体指针*/
if (!pCurrentWindow)/* 没有当前被激活的窗体*/
return; // no windows or window history yet
// check to see whether our current window has a <previouswindow> tag
if (pCurrentWindow->GetPreviousWindow() != WINDOW_INVALID)/* 获取当前窗体是否具有上一个窗体的标记*/
{
// TODO: we may need to test here for the
// whether our history should be changed
// don't reactivate the previouswindow if it is ourselves.
if (currentWindow != pCurrentWindow->GetPreviousWindow())
ActivateWindow(pCurrentWindow->GetPreviousWindow());/* 激活上一个窗体*/
return;/* 返回*/
}
/*
执行到此处时只能是从窗体的历史记录中获取上一个窗体进行激活了
*/
// get the previous window in our stack
/* 窗体操作记录总数少于2 个,则激活home 窗体*/
if (m_windowHistory.size() < 2)
{ // no previous window history yet - check if we should just activate home
if (GetActiveWindow() != WINDOW_INVALID && GetActiveWindow() != WINDOW_HOME)/* 当前窗体有效,并且不是home 窗体,则激活home 窗体,否则直接返回了*/
{
ClearWindowHistory();
ActivateWindow(WINDOW_HOME);
}
return; /* 返回*/
}
/*
执行到此处时窗体操作栈中的数量肯定是大于等于2 个,因此需要从窗体操作栈中获取前一个窗体
*/
/* 如下三行代码就是从窗体的操作记录表( 窗体操作栈) 中取出当前窗体前一个窗体的id 号*/
m_windowHistory.pop(); /* 将当前激活的窗体出栈*/
int previousWindow = GetActiveWindow(); /* 取出当前窗体的前一个窗体,即当前窗体出栈后栈顶的那个窗体*/
m_windowHistory.push(currentWindow); /* 再将当前激活的窗体入栈*/
CGUIWindow *pNewWindow = GetWindow(previousWindow);/* 根据前一个窗体的id 号取出窗体的指针*/
if (!pNewWindow)/* 没得到前一个窗体的指针则清除窗体操作记录栈,将home 窗体激活*/
{
CLog::Log(LOGERROR, "Unable to activate the previous window");
ClearWindowHistory();
ActivateWindow(WINDOW_HOME);
return;
}
/*
执行到此处时获得到了前一个窗体的指针
*/
// ok to go to the previous window now
//-------------------------------------------------------->>> 调用SetNextWindow 开始
// tell our info manager which window we are going to
g_infoManager.SetNextWindow(previousWindow);
// set our overlay state (enables out animations on window change)
HideOverlay(pNewWindow->GetOverlayState());
// deinitialize our window
CloseWindowSync(pCurrentWindow);
//-------------------------------------------------------->>> 调用SetNextWindow 结束
g_infoManager.SetNextWindow(WINDOW_INVALID);
g_infoManager.SetPreviousWindow(currentWindow);
// remove the current window off our window stack
m_windowHistory.pop();
// ok, initialize the new window
CLog::Log(LOGDEBUG,"CGUIWindowManager::PreviousWindow: Activate new");
CGUIMessage msg2(GUI_MSG_WINDOW_INIT, 0, 0, WINDOW_INVALID, GetActiveWindow());
pNewWindow->OnMessage(msg2);
//.........这里部分代码省略.........
示例8: ActivateWindow_Internal
void CGUIWindowManager::ActivateWindow_Internal(int iWindowID, const vector<CStdString>& params, bool swappingWindows)
{
bool passParams = true;
// translate virtual windows
// virtual music window which returns the last open music window (aka the music start window)
if (iWindowID == WINDOW_MUSIC)
{
iWindowID = g_stSettings.m_iMyMusicStartWindow;
// ensure the music virtual window only returns music files and music library windows
if (iWindowID != WINDOW_MUSIC_NAV)
iWindowID = WINDOW_MUSIC_FILES;
// destination path cannot be used with virtual window
passParams = false;
}
// virtual video window which returns the last open video window (aka the video start window)
if (iWindowID == WINDOW_VIDEOS)
{
iWindowID = g_stSettings.m_iVideoStartWindow;
// ensure the virtual video window only returns video windows
if (iWindowID != WINDOW_VIDEO_NAV)
iWindowID = WINDOW_VIDEO_FILES;
// destination path cannot be used with virtual window
passParams = false;
}
// stop video player when entering home screen
if(iWindowID == WINDOW_HOME && g_application.IsPlayingVideo())
{
CLog::Log(LOGDEBUG,"CGUIWindowManager::ActivateWindow_Internal - [iWindowID=%d=WINDOW_HOME][IsPlayingVideo=TRUE] - Going to stop the video (ev)",iWindowID);
g_application.StopPlaying();
}
// debug
CLog::Log(LOGDEBUG, "Activating window ID: %i", iWindowID);
if(!g_passwordManager.CheckMenuLock(iWindowID))
{
CLog::Log(LOGERROR, "MasterCode is Wrong: Window with id %d will not be loaded! Enter a correct MasterCode!", iWindowID);
return;
}
// first check existence of the window we wish to activate.
CGUIWindow *pNewWindow = GetWindow(iWindowID);
if (!pNewWindow)
{ // nothing to see here - move along
CLog::Log(LOGERROR, "Unable to locate window with id %d. Check skin files", iWindowID - WINDOW_HOME);
return ;
}
else if (pNewWindow->IsDialog())
{ // if we have a dialog, we do a DoModal() rather than activate the window
if (!pNewWindow->IsDialogRunning())
((CGUIDialog *)pNewWindow)->DoModal(iWindowID, (passParams && params.size()) ? params[0] : "");
return;
}
g_infoManager.SetNextWindow(iWindowID);
// set our overlay state
HideOverlay(pNewWindow->GetOverlayState());
// deactivate any window
int currentWindow = GetActiveWindow();
CGUIWindow *pWindow = GetWindow(currentWindow);
if (pWindow)
{
// If we got here from the screen saver, don't close the dialogs as we want to see
// them when we come back
if (!g_application.GetInSlideshowScreensaver())
CloseDialogs();
// Play the window specific deinit sound
g_audioManager.PlayWindowSound(pWindow->GetID(), SOUND_DEINIT);
CGUIMessage msg(GUI_MSG_WINDOW_DEINIT, 0, 0, iWindowID);
pWindow->OnMessage(msg);
}
g_infoManager.SetNextWindow(WINDOW_INVALID);
// Add window to the history list (we must do this before we activate it,
// as all messages done in WINDOW_INIT will want to be sent to the new
// topmost window). If we are swapping windows, we pop the old window
// off the history stack
if (swappingWindows && m_windowHistory.size())
m_windowHistory.pop();
AddToWindowHistory(iWindowID);
g_infoManager.SetPreviousWindow(currentWindow);
g_audioManager.PlayWindowSound(pNewWindow->GetID(), SOUND_INIT);
// Send the init message
CGUIMessage msg(GUI_MSG_WINDOW_INIT, 0, 0, currentWindow, iWindowID);
if (passParams)
msg.SetStringParams(params);
pNewWindow->OnMessage(msg);
// g_infoManager.SetPreviousWindow(WINDOW_INVALID);
}
示例9: ActivateWindow_Internal
void CGUIWindowManager::ActivateWindow_Internal(int iWindowID, const vector<string>& params, bool swappingWindows, bool force /* = false */)
{
// translate virtual windows
// virtual music window which returns the last open music window (aka the music start window)
if (iWindowID == WINDOW_MUSIC)
{ // backward compatibility for pre-something
iWindowID = WINDOW_MUSIC_NAV;
}
// virtual video window which returns the last open video window (aka the video start window)
if (iWindowID == WINDOW_VIDEOS || iWindowID == WINDOW_VIDEO_FILES)
{ // backward compatibility for pre-Eden
iWindowID = WINDOW_VIDEO_NAV;
}
if (iWindowID == WINDOW_SCRIPTS)
{ // backward compatibility for pre-Dharma
iWindowID = WINDOW_PROGRAMS;
}
if (iWindowID == WINDOW_START)
{ // virtual start window
iWindowID = g_SkinInfo->GetStartWindow();
}
// debug
CLog::Log(LOGDEBUG, "Activating window ID: %i", iWindowID);
if (!g_passwordManager.CheckMenuLock(iWindowID))
{
CLog::Log(LOGERROR, "MasterCode is Wrong: Window with id %d will not be loaded! Enter a correct MasterCode!", iWindowID);
if (GetActiveWindow() == WINDOW_INVALID && iWindowID != WINDOW_HOME)
ActivateWindow(WINDOW_HOME);
return;
}
// first check existence of the window we wish to activate.
CGUIWindow *pNewWindow = GetWindow(iWindowID);
if (!pNewWindow)
{ // nothing to see here - move along
CLog::Log(LOGERROR, "Unable to locate window with id %d. Check skin files", iWindowID - WINDOW_HOME);
return ;
}
else if (pNewWindow->IsDialog())
{ // if we have a dialog, we do a DoModal() rather than activate the window
if (!pNewWindow->IsDialogRunning())
{
CSingleExit exitit(g_graphicsContext);
((CGUIDialog *)pNewWindow)->Open();
}
return;
}
// don't activate a window if there are active modal dialogs of type NORMAL
if (!force && HasModalDialog({ DialogModalityType::MODAL }))
{
CLog::Log(LOGINFO, "Activate of window '%i' refused because there are active modal dialogs", iWindowID);
g_audioManager.PlayActionSound(CAction(ACTION_ERROR));
return;
}
g_infoManager.SetNextWindow(iWindowID);
// set our overlay state
HideOverlay(pNewWindow->GetOverlayState());
// deactivate any window
int currentWindow = GetActiveWindow();
CGUIWindow *pWindow = GetWindow(currentWindow);
if (pWindow)
CloseWindowSync(pWindow, iWindowID);
g_infoManager.SetNextWindow(WINDOW_INVALID);
// Add window to the history list (we must do this before we activate it,
// as all messages done in WINDOW_INIT will want to be sent to the new
// topmost window). If we are swapping windows, we pop the old window
// off the history stack
if (swappingWindows && !m_windowHistory.empty())
m_windowHistory.pop();
AddToWindowHistory(iWindowID);
g_infoManager.SetPreviousWindow(currentWindow);
// Send the init message
CGUIMessage msg(GUI_MSG_WINDOW_INIT, 0, 0, currentWindow, iWindowID);
msg.SetStringParams(params);
pNewWindow->OnMessage(msg);
// g_infoManager.SetPreviousWindow(WINDOW_INVALID);
}