update: load big stuff in Load(), use given metric class

This commit is contained in:
Glenn Maynard
2005-07-14 01:41:17 +00:00
parent 3f45c8a150
commit 0fd2a733ef
3 changed files with 49 additions and 32 deletions
+32 -32
View File
@@ -40,19 +40,6 @@ static CString ARROWS_X_NAME( size_t i ) { return ssprintf("Arrows%dX",int(i+1))
static CString ROW_VALUE_X_NAME( size_t i ) { return ssprintf("RowValue%dX",int(i+1)); }
static CString ROW_Y_NAME( size_t i ) { return ssprintf("Row%dY",int(i+1)); }
static ThemeMetric1D<float> ARROWS_X ("EditMenu",ARROWS_X_NAME,NUM_ARROWS);
static ThemeMetric<RageColor> ARROWS_ENABLED_COLOR ("EditMenu","ArrowsEnabledColor");
static ThemeMetric<RageColor> ARROWS_DISABLED_COLOR ("EditMenu","ArrowsDisabledColor");
static ThemeMetric<float> SONG_BANNER_WIDTH ("EditMenu","SongBannerWidth");
static ThemeMetric<float> SONG_BANNER_HEIGHT ("EditMenu","SongBannerHeight");
static ThemeMetric<float> GROUP_BANNER_WIDTH ("EditMenu","GroupBannerWidth");
static ThemeMetric<float> GROUP_BANNER_HEIGHT ("EditMenu","GroupBannerHeight");
static ThemeMetric<float> ROW_LABELS_X ("EditMenu","RowLabelsX");
static ThemeMetric<apActorCommands> ROW_LABEL_ON_COMMAND("EditMenu","RowLabelOnCommand");
static ThemeMetric1D<float> ROW_VALUE_X ("EditMenu",ROW_VALUE_X_NAME,NUM_EDIT_MENU_ROWS);
static ThemeMetric<apActorCommands> ROW_VALUE_ON_COMMAND("EditMenu","RowValueOnCommand");
static ThemeMetric1D<float> ROW_Y ("EditMenu",ROW_Y_NAME,NUM_EDIT_MENU_ROWS);
void EditMenu::GetSongsToShowForGroup( const CString &sGroup, vector<Song*> &vpSongsOut )
{
@@ -94,13 +81,33 @@ void EditMenu::GetGroupsToShow( vector<CString> &vsGroupsOut )
EditMenu::EditMenu()
{
LOG->Trace( "EditMenu::EditMenu()" );
}
SetName( "EditMenu" );
EditMenu::~EditMenu()
{
BANNERCACHE->Undemand();
}
void EditMenu::Load( const CString &sType )
{
LOG->Trace( "EditMenu::Load" );
ARROWS_X.Load(sType,ARROWS_X_NAME,NUM_ARROWS);
ARROWS_ENABLED_COLOR.Load(sType,"ArrowsEnabledColor");
ARROWS_DISABLED_COLOR.Load(sType,"ArrowsDisabledColor");
SONG_BANNER_WIDTH.Load(sType,"SongBannerWidth");
SONG_BANNER_HEIGHT.Load(sType,"SongBannerHeight");
GROUP_BANNER_WIDTH.Load(sType,"GroupBannerWidth");
GROUP_BANNER_HEIGHT.Load(sType,"GroupBannerHeight");
ROW_LABELS_X.Load(sType,"RowLabelsX");
ROW_LABEL_ON_COMMAND.Load(sType,"RowLabelOnCommand");
ROW_VALUE_X.Load(sType,ROW_VALUE_X_NAME,NUM_EDIT_MENU_ROWS);
ROW_VALUE_ON_COMMAND.Load(sType,"RowValueOnCommand");
ROW_Y.Load(sType,ROW_Y_NAME,NUM_EDIT_MENU_ROWS);
for( int i=0; i<2; i++ )
{
m_sprArrows[i].Load( THEME->GetPathG("EditMenu",i==0?"left":"right") );
m_sprArrows[i].Load( THEME->GetPathG(sType,i==0?"left":"right") );
m_sprArrows[i].SetX( ARROWS_X.GetValue(i) );
this->AddChild( &m_sprArrows[i] );
}
@@ -112,14 +119,14 @@ EditMenu::EditMenu()
FOREACH_EditMenuRow( r )
{
m_textLabel[r].LoadFromFont( THEME->GetPathF("EditMenu","title") );
m_textLabel[r].LoadFromFont( THEME->GetPathF(sType,"title") );
m_textLabel[r].SetXY( ROW_LABELS_X, ROW_Y.GetValue(r) );
m_textLabel[r].SetText( EditMenuRowToThemedString(r) );
m_textLabel[r].RunCommands( ROW_LABEL_ON_COMMAND );
m_textLabel[r].SetHorizAlign( Actor::align_left );
this->AddChild( &m_textLabel[r] );
m_textValue[r].LoadFromFont( THEME->GetPathF("EditMenu","value") );
m_textValue[r].LoadFromFont( THEME->GetPathF(sType,"value") );
m_textValue[r].SetXY( ROW_VALUE_X.GetValue(r), ROW_Y.GetValue(r) );
m_textValue[r].SetText( "blah" );
m_textValue[r].RunCommands( ROW_VALUE_ON_COMMAND );
@@ -130,32 +137,30 @@ EditMenu::EditMenu()
BANNERCACHE->Demand();
m_GroupBanner.SetName( "GroupBanner" );
SET_XY( m_GroupBanner );
ActorUtil::SetXY( m_GroupBanner, sType );
this->AddChild( &m_GroupBanner );
m_SongBanner.SetName( "SongBanner" );
SET_XY( m_SongBanner );
ActorUtil::SetXY( m_SongBanner, sType );
this->AddChild( &m_SongBanner );
m_SongTextBanner.SetName( "SongTextBanner" );
m_SongTextBanner.Load( "TextBanner" );
SET_XY( m_SongTextBanner );
ActorUtil::SetXY( m_SongTextBanner, sType );
this->AddChild( &m_SongTextBanner );
m_Meter.SetName( "Meter" );
m_Meter.Load( "EditDifficultyMeter" );
SET_XY( m_Meter );
ActorUtil::SetXY( m_Meter, sType );
this->AddChild( &m_Meter );
m_SourceMeter.SetName( "SourceMeter" );
m_SourceMeter.Load( "EditDifficultyMeter" );
SET_XY( m_SourceMeter );
ActorUtil::SetXY( m_SourceMeter, sType );
this->AddChild( &m_SourceMeter );
m_soundChangeRow.Load( THEME->GetPathS("EditMenu","row") );
m_soundChangeValue.Load( THEME->GetPathS("EditMenu","value") );
m_soundChangeRow.Load( THEME->GetPathS(sType,"row") );
m_soundChangeValue.Load( THEME->GetPathS(sType,"value") );
//
// fill in data structures
@@ -167,11 +172,6 @@ EditMenu::EditMenu()
RefreshAll();
}
EditMenu::~EditMenu()
{
BANNERCACHE->Undemand();
}
void EditMenu::RefreshAll()
{
ChangeToRow( (EditMenuRow)0 );
+15
View File
@@ -10,6 +10,7 @@
#include "DifficultyMeter.h"
#include "RandomSample.h"
#include "EnumHelper.h"
#include "ThemeMetric.h"
enum EditMenuRow
@@ -45,6 +46,7 @@ class EditMenu: public ActorFrame
public:
EditMenu();
~EditMenu();
void Load( const CString &sType );
bool CanGoUp();
bool CanGoDown();
@@ -108,6 +110,19 @@ private:
RandomSample m_soundChangeRow;
RandomSample m_soundChangeValue;
ThemeMetric1D<float> ARROWS_X;
ThemeMetric<RageColor> ARROWS_ENABLED_COLOR;
ThemeMetric<RageColor> ARROWS_DISABLED_COLOR;
ThemeMetric<float> SONG_BANNER_WIDTH;
ThemeMetric<float> SONG_BANNER_HEIGHT;
ThemeMetric<float> GROUP_BANNER_WIDTH;
ThemeMetric<float> GROUP_BANNER_HEIGHT;
ThemeMetric<float> ROW_LABELS_X;
ThemeMetric<apActorCommands> ROW_LABEL_ON_COMMAND;
ThemeMetric1D<float> ROW_VALUE_X;
ThemeMetric<apActorCommands> ROW_VALUE_ON_COMMAND;
ThemeMetric1D<float> ROW_Y;
};
#endif
+2
View File
@@ -34,6 +34,8 @@ void ScreenEditMenu::Init()
{
ScreenWithMenuElements::Init();
m_Selector.SetName( "EditMenu" );
m_Selector.Load( "EditMenu" );
m_Selector.SetXY( 0, 0 );
this->AddChild( &m_Selector );