per-row explanation text in ScreenEditMenu

This commit is contained in:
Chris Danford
2005-03-08 00:32:49 +00:00
parent 7904959f4f
commit 6d07297588
3 changed files with 40 additions and 12 deletions
+5 -3
View File
@@ -23,9 +23,9 @@ enum EditMenuRow
ROW_ACTION,
NUM_EDIT_MENU_ROWS
};
#define FOREACH_EditMenuRow( emr ) FOREACH_ENUM( EditMenuRow, NUM_EDIT_MENU_ROWS, emr )
const CString& RadarCategoryToString( RadarCategory cat );
const CString& RadarCategoryToThemedString( RadarCategory cat );
#define FOREACH_EditMenuRow( r ) FOREACH_ENUM( EditMenuRow, NUM_EDIT_MENU_ROWS, r )
const CString& EditMenuRowToString( EditMenuRow r );
const CString& EditMenuRowToThemedString( EditMenuRow r );
class EditMenu: public ActorFrame
@@ -58,6 +58,8 @@ public:
Difficulty GetSelectedDifficulty();
Difficulty GetSelectedSourceDifficulty();
EditMenuRow GetSelectedRow() const { return m_SelectedRow; }
private:
Sprite m_sprArrows[2];
+33 -9
View File
@@ -13,9 +13,9 @@
#include "Steps.h"
#include "song.h"
#define PREV_SCREEN THEME->GetMetric(m_sName,"PrevScreen")
#define EXPLANATION_TEXT THEME->GetMetric(m_sName,"ExplanationText")
#define HELP_TEXT THEME->GetMetric(m_sName,"HelpText")
#define PREV_SCREEN THEME->GetMetric(m_sName,"PrevScreen")
#define EXPLANATION_TEXT( row ) THEME->GetMetric(m_sName,"Explanation"+EditMenuRowToString(row))
#define HELP_TEXT THEME->GetMetric(m_sName,"HelpText")
const ScreenMessage SM_RefreshSelector = (ScreenMessage)(SM_User+1);
@@ -40,8 +40,8 @@ void ScreenEditMenu::Init()
m_textExplanation.SetName( "Explanation" );
m_textExplanation.LoadFromFont( THEME->GetPathF(m_sName,"explanation") );
SET_XY_AND_ON_COMMAND( m_textExplanation );
m_textExplanation.SetText( EXPLANATION_TEXT );
SET_XY( m_textExplanation );
RefreshExplanationText();
this->AddChild( &m_textExplanation );
this->SortByDrawOrder();
@@ -67,22 +67,38 @@ void ScreenEditMenu::HandleScreenMessage( const ScreenMessage SM )
void ScreenEditMenu::MenuUp( PlayerNumber pn )
{
m_Selector.Up();
if( m_Selector.CanGoUp() )
{
m_Selector.Up();
RefreshExplanationText();
}
}
void ScreenEditMenu::MenuDown( PlayerNumber pn )
{
m_Selector.Down();
if( m_Selector.CanGoDown() )
{
m_Selector.Down();
RefreshExplanationText();
}
}
void ScreenEditMenu::MenuLeft( PlayerNumber pn, const InputEventType type )
{
m_Selector.Left();
if( m_Selector.CanGoLeft() )
{
m_Selector.Left();
RefreshExplanationText();
}
}
void ScreenEditMenu::MenuRight( PlayerNumber pn, const InputEventType type )
{
m_Selector.Right();
if( m_Selector.CanGoRight() )
{
m_Selector.Right();
RefreshExplanationText();
}
}
@@ -221,6 +237,14 @@ void ScreenEditMenu::MenuBack( PlayerNumber pn )
SOUND->StopMusic();
}
void ScreenEditMenu::RefreshExplanationText()
{
m_textExplanation.SetText( EXPLANATION_TEXT(m_Selector.GetSelectedRow()) );
m_textExplanation.StopTweening();
ON_COMMAND( m_textExplanation );
}
/*
* (c) 2002-2004 Chris Danford
* All rights reserved.
+2
View File
@@ -22,6 +22,8 @@ private:
void MenuBack( PlayerNumber pn );
void MenuStart( PlayerNumber pn );
void RefreshExplanationText();
EditMenu m_Selector;
BitmapText m_textExplanation;