ScreenPrompt::Prompt, cleaning up ScreenManager
This commit is contained in:
@@ -447,20 +447,9 @@ void ScreenManager::AddNewScreenToTop( const CString &sScreenName )
|
||||
SetFromNewScreen( pNewScreen );
|
||||
}
|
||||
|
||||
#include "ScreenPrompt.h"
|
||||
#include "ScreenTextEntry.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(
|
||||
ScreenMessage smSendOnPop,
|
||||
CString sQuestion,
|
||||
|
||||
@@ -17,21 +17,6 @@ struct Menu;
|
||||
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);
|
||||
|
||||
@@ -55,7 +40,6 @@ public:
|
||||
|
||||
void SetNewScreen( 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(
|
||||
ScreenMessage smSendOnPop,
|
||||
CString sQuestion,
|
||||
@@ -71,6 +55,7 @@ public:
|
||||
TextEntry( smSendOnPop, sQuestion, "", 255, NULL, OnOK, OnCanel, true );
|
||||
}
|
||||
void MiniMenu( Menu* pDef, ScreenMessage smSendOnOK, ScreenMessage smSendOnCancel = SM_None );
|
||||
void SetFromNewScreen( Screen *pNewScreen );
|
||||
void PopTopScreen( ScreenMessage SM );
|
||||
void SystemMessage( const CString &sMessage );
|
||||
void SystemMessageNoAnimate( const CString &sMessage );
|
||||
@@ -117,7 +102,6 @@ private:
|
||||
|
||||
Screen* MakeNewScreen( const CString &sName );
|
||||
Screen* MakeNewScreenInternal( const CString &sName );
|
||||
void SetFromNewScreen( Screen *pNewScreen );
|
||||
void ClearScreenStack();
|
||||
void EmptyDeleteQueue();
|
||||
void LoadDelayedScreen();
|
||||
|
||||
@@ -14,6 +14,17 @@ bool ScreenPrompt::s_bCancelledLast = false;
|
||||
|
||||
#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 );
|
||||
ScreenPrompt::ScreenPrompt( const CString &sScreenName ):
|
||||
Screen( sScreenName )
|
||||
|
||||
@@ -11,10 +11,26 @@
|
||||
#include "BGAnimation.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
|
||||
{
|
||||
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 );
|
||||
virtual void Init();
|
||||
void Load(
|
||||
|
||||
Reference in New Issue
Block a user