The screen that pushes a screen sets the pop message, not the pushed screen.

This pushing screens without them needing to be aware of it.  (This will also allow
a pushed screen to replace itself with another pushed screen without having to
propagate the finalization message across; that'll make more sense if the rest of
this pans out ...)
This commit is contained in:
Glenn Maynard
2005-07-18 02:28:16 +00:00
parent d2e4190a4e
commit 5ee52b0db5
2 changed files with 5 additions and 2 deletions
+2 -1
View File
@@ -42,7 +42,7 @@ public:
bool ConcurrentlyPrepareScreen( const CString &sScreenName, ScreenMessage send_when_done = SM_None );
bool IsConcurrentlyLoading() const;
void DeletePreparedScreens();
void PushScreen( Screen *pNewScreen, bool bDeleteWhenDone=false );
void PushScreen( Screen *pNewScreen, bool bDeleteWhenDone=false, ScreenMessage SendOnPop=SM_None );
void PopTopScreen( ScreenMessage SM );
Screen *GetTopScreen();
@@ -78,6 +78,7 @@ private:
{
Screen *m_pScreen;
bool m_bDeleteWhenDone;
ScreenMessage m_SendOnPop;
};
vector<LoadedScreen> m_ScreenStack; // bottommost to topmost
vector<Screen*> m_OverlayScreens;