This commit is contained in:
Glenn Maynard
2005-06-19 08:51:09 +00:00
parent f11a2ce17e
commit a0dcb3dc81
2 changed files with 10 additions and 12 deletions
+9 -11
View File
@@ -359,13 +359,9 @@ void ScreenManager::ClearScreenStack()
m_ScreenStack.clear(); m_ScreenStack.clear();
} }
/* Add a screen to m_ScreenStack. If Stack is true, it's added to the stack; otherwise any /* Add a screen to m_ScreenStack. This is the only function that adds to m_ScreenStack. */
* current screens are removed. This is the only function that adds to m_ScreenStack. */ void ScreenManager::SetFromNewScreen( Screen *pNewScreen )
void ScreenManager::SetFromNewScreen( Screen *pNewScreen, bool Stack )
{ {
if( !Stack )
ClearScreenStack();
m_ScreenStack.push_back( pNewScreen ); m_ScreenStack.push_back( pNewScreen );
RefreshCreditsMessages(); RefreshCreditsMessages();
@@ -445,8 +441,10 @@ retry:
if( bWasOnSystemMenu && !bIsOnSystemMenu ) if( bWasOnSystemMenu && !bIsOnSystemMenu )
PREFSMAN->SaveGlobalPrefsToDisk(); PREFSMAN->SaveGlobalPrefsToDisk();
ClearScreenStack();
LOG->Trace("... SetFromNewScreen"); LOG->Trace("... SetFromNewScreen");
SetFromNewScreen( pNewScreen, false ); SetFromNewScreen( pNewScreen );
} }
void ScreenManager::AddNewScreenToTop( const CString &sScreenName ) void ScreenManager::AddNewScreenToTop( const CString &sScreenName )
@@ -459,7 +457,7 @@ void ScreenManager::AddNewScreenToTop( const CString &sScreenName )
m_ScreenStack.back()->HandleScreenMessage( SM_LoseFocus ); m_ScreenStack.back()->HandleScreenMessage( SM_LoseFocus );
Screen* pNewScreen = MakeNewScreen(sScreenName); Screen* pNewScreen = MakeNewScreen(sScreenName);
SetFromNewScreen( pNewScreen, true ); SetFromNewScreen( pNewScreen );
} }
#include "ScreenPrompt.h" #include "ScreenPrompt.h"
@@ -475,7 +473,7 @@ void ScreenManager::Prompt( ScreenMessage smSendOnPop, const CString &sText, Pro
Screen *pNewScreen = new ScreenPrompt( "ScreenPrompt", smSendOnPop, sText, type, defaultAnswer, OnYes, OnNo, pCallbackData); Screen *pNewScreen = new ScreenPrompt( "ScreenPrompt", smSendOnPop, sText, type, defaultAnswer, OnYes, OnNo, pCallbackData);
pNewScreen->Init(); pNewScreen->Init();
this->ZeroNextUpdate(); this->ZeroNextUpdate();
SetFromNewScreen( pNewScreen, true ); SetFromNewScreen( pNewScreen );
} }
void ScreenManager::TextEntry( void ScreenManager::TextEntry(
@@ -505,7 +503,7 @@ void ScreenManager::TextEntry(
bPassword ); bPassword );
pNewScreen->Init(); pNewScreen->Init();
this->ZeroNextUpdate(); this->ZeroNextUpdate();
SetFromNewScreen( pNewScreen, true ); SetFromNewScreen( pNewScreen );
} }
void ScreenManager::MiniMenu( Menu* pDef, ScreenMessage SM_SendOnOK, ScreenMessage SM_SendOnCancel ) void ScreenManager::MiniMenu( Menu* pDef, ScreenMessage SM_SendOnOK, ScreenMessage SM_SendOnCancel )
@@ -517,7 +515,7 @@ void ScreenManager::MiniMenu( Menu* pDef, ScreenMessage SM_SendOnOK, ScreenMessa
ScreenMiniMenu *pNewScreen = new ScreenMiniMenu( pDef->sClassName ); ScreenMiniMenu *pNewScreen = new ScreenMiniMenu( pDef->sClassName );
pNewScreen->Init( pDef, SM_SendOnOK, SM_SendOnCancel ); pNewScreen->Init( pDef, SM_SendOnOK, SM_SendOnCancel );
this->ZeroNextUpdate(); this->ZeroNextUpdate();
SetFromNewScreen( pNewScreen, true ); SetFromNewScreen( pNewScreen );
} }
void ScreenManager::PopTopScreen( ScreenMessage SM ) void ScreenManager::PopTopScreen( ScreenMessage SM )
+1 -1
View File
@@ -118,7 +118,7 @@ private:
Screen* MakeNewScreen( const CString &sName ); Screen* MakeNewScreen( const CString &sName );
Screen* MakeNewScreenInternal( const CString &sName ); Screen* MakeNewScreenInternal( const CString &sName );
void SetFromNewScreen( Screen *pNewScreen, bool Stack ); void SetFromNewScreen( Screen *pNewScreen );
void ClearScreenStack(); void ClearScreenStack();
void EmptyDeleteQueue(); void EmptyDeleteQueue();
void LoadDelayedScreen(); void LoadDelayedScreen();