localizable prompt answer text

This commit is contained in:
Chris Danford
2006-04-24 12:21:37 +00:00
parent 66143a97d2
commit ab363bd1fc
8 changed files with 46 additions and 30 deletions
+17 -5
View File
@@ -13,7 +13,14 @@
PromptAnswer ScreenPrompt::s_LastAnswer = ANSWER_YES;
bool ScreenPrompt::s_bCancelledLast = false;
#define ANSWER_TEXT( elem ) THEME->GetString(m_sName,elem+"Text")
#define ANSWER_TEXT( s ) THEME->GetString(m_sName,s)
static const char *PromptAnswerNames[] = {
"Yes",
"No",
"Cancel",
};
XToString( PromptAnswer, NUM_PromptAnswer );
/* Settings: */
namespace
@@ -59,7 +66,7 @@ void ScreenPrompt::Init()
m_sprCursor->SetName( "Cursor" );
this->AddChild( m_sprCursor );
for( int i=0; i<NUM_PROMPT_ANSWERS; i++ )
for( int i=0; i<NUM_PromptAnswer; i++ )
{
m_textAnswer[i].LoadFromFont( THEME->GetPathF(m_sName,"answer") );
this->AddChild( &m_textAnswer[i] );
@@ -84,11 +91,16 @@ void ScreenPrompt::BeginScreen()
{
RString sElem = ssprintf("Answer%dOf%d", i+1, g_PromptType+1);
m_textAnswer[i].SetName( sElem );
m_textAnswer[i].SetText( ANSWER_TEXT(sElem) );
RString sAnswer = PromptAnswerToString( (PromptAnswer)i );
// FRAGILE
if( g_PromptType == PROMPT_OK )
sAnswer = "OK";
m_textAnswer[i].SetText( ANSWER_TEXT(sAnswer) );
SET_XY_AND_ON_COMMAND( m_textAnswer[i] );
}
for( int i=g_PromptType+1; i<NUM_PROMPT_ANSWERS; i++ )
for( int i=g_PromptType+1; i<NUM_PromptAnswer; i++ )
m_textAnswer[i].SetText( "" );
PositionCursor();
@@ -140,7 +152,7 @@ void ScreenPrompt::Change( int dir )
{
m_textAnswer[m_Answer].StopEffect();
m_Answer = (PromptAnswer)(m_Answer+dir);
ASSERT( m_Answer >= 0 && m_Answer < NUM_PROMPT_ANSWERS );
ASSERT( m_Answer >= 0 && m_Answer < NUM_PromptAnswer );
PositionCursor();