ScreenPrompt::Prompt, cleaning up ScreenManager
This commit is contained in:
@@ -447,20 +447,9 @@ void ScreenManager::AddNewScreenToTop( const CString &sScreenName )
|
|||||||
SetFromNewScreen( pNewScreen );
|
SetFromNewScreen( pNewScreen );
|
||||||
}
|
}
|
||||||
|
|
||||||
#include "ScreenPrompt.h"
|
|
||||||
#include "ScreenTextEntry.h"
|
#include "ScreenTextEntry.h"
|
||||||
#include "ScreenMiniMenu.h"
|
#include "ScreenMiniMenu.h"
|
||||||
|
|
||||||
void ScreenManager::Prompt( ScreenMessage smSendOnPop, const CString &sText, PromptType type, PromptAnswer defaultAnswer, void(*OnYes)(void*), void(*OnNo)(void*), void* pCallbackData )
|
|
||||||
{
|
|
||||||
// add the new state onto the back of the array
|
|
||||||
ScreenPrompt *pNewScreen = new ScreenPrompt( "ScreenPrompt" );
|
|
||||||
pNewScreen->Init();
|
|
||||||
pNewScreen->Load( smSendOnPop, sText, type, defaultAnswer, OnYes, OnNo, pCallbackData );
|
|
||||||
this->ZeroNextUpdate();
|
|
||||||
SetFromNewScreen( pNewScreen );
|
|
||||||
}
|
|
||||||
|
|
||||||
void ScreenManager::TextEntry(
|
void ScreenManager::TextEntry(
|
||||||
ScreenMessage smSendOnPop,
|
ScreenMessage smSendOnPop,
|
||||||
CString sQuestion,
|
CString sQuestion,
|
||||||
|
|||||||
@@ -17,21 +17,6 @@ struct Menu;
|
|||||||
struct lua_State;
|
struct lua_State;
|
||||||
|
|
||||||
|
|
||||||
enum PromptType
|
|
||||||
{
|
|
||||||
PROMPT_OK,
|
|
||||||
PROMPT_YES_NO,
|
|
||||||
PROMPT_YES_NO_CANCEL
|
|
||||||
};
|
|
||||||
|
|
||||||
enum PromptAnswer
|
|
||||||
{
|
|
||||||
ANSWER_YES,
|
|
||||||
ANSWER_NO,
|
|
||||||
ANSWER_CANCEL,
|
|
||||||
NUM_PROMPT_ANSWERS
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
typedef Screen* (*CreateScreenFn)(const CString& sClassName);
|
typedef Screen* (*CreateScreenFn)(const CString& sClassName);
|
||||||
|
|
||||||
@@ -55,7 +40,6 @@ public:
|
|||||||
|
|
||||||
void SetNewScreen( const CString &sName );
|
void SetNewScreen( const CString &sName );
|
||||||
void AddNewScreenToTop( const CString &sName );
|
void AddNewScreenToTop( const CString &sName );
|
||||||
void Prompt( ScreenMessage smSendOnPop, const CString &sText, PromptType type = PROMPT_OK, PromptAnswer defaultAnswer = ANSWER_NO, void(*OnYes)(void*) = NULL, void(*OnNo)(void*) = NULL, void* pCallbackData = NULL );
|
|
||||||
void TextEntry(
|
void TextEntry(
|
||||||
ScreenMessage smSendOnPop,
|
ScreenMessage smSendOnPop,
|
||||||
CString sQuestion,
|
CString sQuestion,
|
||||||
@@ -71,6 +55,7 @@ public:
|
|||||||
TextEntry( smSendOnPop, sQuestion, "", 255, NULL, OnOK, OnCanel, true );
|
TextEntry( smSendOnPop, sQuestion, "", 255, NULL, OnOK, OnCanel, true );
|
||||||
}
|
}
|
||||||
void MiniMenu( Menu* pDef, ScreenMessage smSendOnOK, ScreenMessage smSendOnCancel = SM_None );
|
void MiniMenu( Menu* pDef, ScreenMessage smSendOnOK, ScreenMessage smSendOnCancel = SM_None );
|
||||||
|
void SetFromNewScreen( Screen *pNewScreen );
|
||||||
void PopTopScreen( ScreenMessage SM );
|
void PopTopScreen( ScreenMessage SM );
|
||||||
void SystemMessage( const CString &sMessage );
|
void SystemMessage( const CString &sMessage );
|
||||||
void SystemMessageNoAnimate( const CString &sMessage );
|
void SystemMessageNoAnimate( const CString &sMessage );
|
||||||
@@ -117,7 +102,6 @@ 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 );
|
|
||||||
void ClearScreenStack();
|
void ClearScreenStack();
|
||||||
void EmptyDeleteQueue();
|
void EmptyDeleteQueue();
|
||||||
void LoadDelayedScreen();
|
void LoadDelayedScreen();
|
||||||
|
|||||||
@@ -14,6 +14,17 @@ bool ScreenPrompt::s_bCancelledLast = false;
|
|||||||
|
|
||||||
#define ANSWER_TEXT( elem ) THEME->GetMetric(m_sName,elem+"Text")
|
#define ANSWER_TEXT( elem ) THEME->GetMetric(m_sName,elem+"Text")
|
||||||
|
|
||||||
|
void ScreenPrompt::Prompt( ScreenMessage smSendOnPop, const CString &sText, PromptType type, PromptAnswer defaultAnswer, void(*OnYes)(void*), void(*OnNo)(void*), void* pCallbackData )
|
||||||
|
{
|
||||||
|
// add the new state onto the back of the array
|
||||||
|
ScreenPrompt *pNewScreen = new ScreenPrompt( "ScreenPrompt" );
|
||||||
|
pNewScreen->Init();
|
||||||
|
pNewScreen->Load( smSendOnPop, sText, type, defaultAnswer, OnYes, OnNo, pCallbackData );
|
||||||
|
SCREENMAN->ZeroNextUpdate();
|
||||||
|
SCREENMAN->SetFromNewScreen( pNewScreen );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//REGISTER_SCREEN_CLASS( ScreenPrompt );
|
//REGISTER_SCREEN_CLASS( ScreenPrompt );
|
||||||
ScreenPrompt::ScreenPrompt( const CString &sScreenName ):
|
ScreenPrompt::ScreenPrompt( const CString &sScreenName ):
|
||||||
Screen( sScreenName )
|
Screen( sScreenName )
|
||||||
|
|||||||
@@ -11,10 +11,26 @@
|
|||||||
#include "BGAnimation.h"
|
#include "BGAnimation.h"
|
||||||
#include "ScreenManager.h"
|
#include "ScreenManager.h"
|
||||||
|
|
||||||
|
enum PromptType
|
||||||
|
{
|
||||||
|
PROMPT_OK,
|
||||||
|
PROMPT_YES_NO,
|
||||||
|
PROMPT_YES_NO_CANCEL
|
||||||
|
};
|
||||||
|
|
||||||
|
enum PromptAnswer
|
||||||
|
{
|
||||||
|
ANSWER_YES,
|
||||||
|
ANSWER_NO,
|
||||||
|
ANSWER_CANCEL,
|
||||||
|
NUM_PROMPT_ANSWERS
|
||||||
|
};
|
||||||
|
|
||||||
class ScreenPrompt : public Screen
|
class ScreenPrompt : public Screen
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
static void Prompt( ScreenMessage smSendOnPop, const CString &sText, PromptType type = PROMPT_OK, PromptAnswer defaultAnswer = ANSWER_NO, void(*OnYes)(void*) = NULL, void(*OnNo)(void*) = NULL, void* pCallbackData = NULL );
|
||||||
|
|
||||||
ScreenPrompt( const CString &sScreenName );
|
ScreenPrompt( const CString &sScreenName );
|
||||||
virtual void Init();
|
virtual void Init();
|
||||||
void Load(
|
void Load(
|
||||||
|
|||||||
Reference in New Issue
Block a user