different ScreenMessages sent on pop is expected to be a more commonly
used way of communicating between screens; make it easier to use.
This commit is contained in:
@@ -36,6 +36,8 @@ bool Screen::SortMessagesByDelayRemaining(const Screen::QueuedScreenMessage &m1,
|
|||||||
|
|
||||||
void Screen::Init()
|
void Screen::Init()
|
||||||
{
|
{
|
||||||
|
m_smSendOnPop = SM_None;
|
||||||
|
|
||||||
this->RunCommands( THEME->GetMetricA(m_sName, "ScreenInitCommand") );
|
this->RunCommands( THEME->GetMetricA(m_sName, "ScreenInitCommand") );
|
||||||
|
|
||||||
vector<CString> asList;
|
vector<CString> asList;
|
||||||
@@ -197,13 +199,13 @@ void Screen::HandleScreenMessage( const ScreenMessage SM )
|
|||||||
break;
|
break;
|
||||||
case SM_GoToNextScreen:
|
case SM_GoToNextScreen:
|
||||||
if( SCREENMAN->IsStackedScreen(this) )
|
if( SCREENMAN->IsStackedScreen(this) )
|
||||||
SCREENMAN->PopTopScreen( SM_None );
|
SCREENMAN->PopTopScreen( m_smSendOnPop );
|
||||||
else
|
else
|
||||||
SCREENMAN->SetNewScreen( GetNextScreen() );
|
SCREENMAN->SetNewScreen( GetNextScreen() );
|
||||||
break;
|
break;
|
||||||
case SM_GoToPrevScreen:
|
case SM_GoToPrevScreen:
|
||||||
if( SCREENMAN->IsStackedScreen(this) )
|
if( SCREENMAN->IsStackedScreen(this) )
|
||||||
SCREENMAN->PopTopScreen( SM_None );
|
SCREENMAN->PopTopScreen( m_smSendOnPop );
|
||||||
else
|
else
|
||||||
SCREENMAN->SetNewScreen( GetPrevScreen() );
|
SCREENMAN->SetNewScreen( GetPrevScreen() );
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -79,6 +79,7 @@ protected:
|
|||||||
|
|
||||||
// If these are left blank, the NextScreen and PrevScreen metrics will be used.
|
// If these are left blank, the NextScreen and PrevScreen metrics will be used.
|
||||||
CString m_sNextScreen, m_sPrevScreen;
|
CString m_sNextScreen, m_sPrevScreen;
|
||||||
|
ScreenMessage m_smSendOnPop;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user