diff --git a/stepmania/src/OptionIcon.cpp b/stepmania/src/OptionIcon.cpp index 6b593b679a..51c1925ed7 100644 --- a/stepmania/src/OptionIcon.cpp +++ b/stepmania/src/OptionIcon.cpp @@ -3,15 +3,7 @@ #include "ThemeManager.h" #include "PlayerOptions.h" #include "RageUtil.h" - -#define TEXT_OFFSET_X THEME->GetMetricF("OptionIcon","TextOffsetX") -#define TEXT_OFFSET_Y THEME->GetMetricF("OptionIcon","TextOffsetY") -#define TEXT_H_ALIGN THEME->GetMetricI("OptionIcon","TextHAlign") -#define TEXT_V_ALIGN THEME->GetMetricI("OptionIcon","TextVAlign") -#define TEXT_WIDTH THEME->GetMetricI("OptionIcon","TextWidth") -#define TEXT_ZOOM THEME->GetMetricF("OptionIcon","TextZoom") -#define UPPERCASE THEME->GetMetricB("OptionIcon","Uppercase") - +#include "ActorUtil.h" OptionIcon::OptionIcon() { @@ -29,21 +21,17 @@ OptionIcon::OptionIcon( const OptionIcon &cpy ): this->AddChild( &m_text ); } -void OptionIcon::Load( RString sType ) +void OptionIcon::Load( RString sMetricsGroup ) { - m_sprFilled.Load( THEME->GetPathG(sType,"icon filled") ); + m_sprFilled.Load( THEME->GetPathG(sMetricsGroup,"Filled") ); this->AddChild( m_sprFilled ); - m_sprEmpty.Load( THEME->GetPathG(sType,"icon empty") ); + m_sprEmpty.Load( THEME->GetPathG(sMetricsGroup,"Empty") ); this->AddChild( m_sprEmpty ); - m_text.LoadFromFont( THEME->GetPathF(sType,"icon") ); - m_text.SetShadowLength( 0 ); - m_text.SetZoom( TEXT_ZOOM ); - m_text.SetXY( TEXT_OFFSET_X, TEXT_OFFSET_Y ); - // XXX: Hack to make this call the correct function. - ((Actor&)m_text).SetHorizAlign( (HorizAlign)TEXT_H_ALIGN ); - ((Actor&)m_text).SetVertAlign( (VertAlign)TEXT_V_ALIGN ); + m_text.LoadFromFont( THEME->GetPathF(sMetricsGroup,"Text") ); + m_text.SetName( "Text" ); + ActorUtil::SetXYAndOnCommand( m_text, sMetricsGroup ); this->AddChild( &m_text ); Set(""); @@ -65,9 +53,6 @@ void OptionIcon::Set( const RString &_sText ) if( 0==stricmp(sText,sStopWords[i]) ) sText = ""; - if( UPPERCASE ) - sText.MakeUpper(); - sText.Replace( " ", "\n" ); bool bVacant = (sText==""); @@ -75,8 +60,6 @@ void OptionIcon::Set( const RString &_sText ) m_sprEmpty->SetVisible( bVacant ); m_text.SetText( sText ); - m_text.SetZoom( TEXT_ZOOM ); - m_text.CropToWidth( TEXT_WIDTH ); } /* diff --git a/stepmania/src/OptionIcon.h b/stepmania/src/OptionIcon.h index df5adc5c13..508017cc8a 100644 --- a/stepmania/src/OptionIcon.h +++ b/stepmania/src/OptionIcon.h @@ -8,13 +8,12 @@ #include "BitmapText.h" #include "PlayerNumber.h" - class OptionIcon : public ActorFrame { public: OptionIcon(); OptionIcon( const OptionIcon &cpy ); - void Load( RString sType ); + void Load( RString sMetricsGroup ); void Set( const RString &sText ); protected: diff --git a/stepmania/src/OptionIconRow.cpp b/stepmania/src/OptionIconRow.cpp index 159295d8bb..4afd0e179f 100644 --- a/stepmania/src/OptionIconRow.cpp +++ b/stepmania/src/OptionIconRow.cpp @@ -38,13 +38,14 @@ void OptionIconRow::Load( const RString &sMetricsGroup, PlayerNumber pn ) SPACING_X.Load(sMetricsGroup,"SpacingX"); SPACING_Y.Load(sMetricsGroup,"SpacingY"); NUM_OPTION_ICONS.Load(sMetricsGroup,"NumOptionIcons"); + OPTION_ICON_METRICS_GROUP.Load(sMetricsGroup,"OptionIconMetricsGroup"); for( int i=0; iSetName( "OptionIcon" ); p->SetXY( i*SPACING_X, i*SPACING_Y ); - p->Load( sMetricsGroup ); + p->Load( OPTION_ICON_METRICS_GROUP ); ActorUtil::LoadAllCommands( p, sMetricsGroup ); m_vpOptionIcon.push_back( p ); this->AddChild( p ); diff --git a/stepmania/src/OptionIconRow.h b/stepmania/src/OptionIconRow.h index eb574ca388..9e36b03522 100644 --- a/stepmania/src/OptionIconRow.h +++ b/stepmania/src/OptionIconRow.h @@ -35,6 +35,7 @@ protected: ThemeMetric SPACING_X; ThemeMetric SPACING_Y; ThemeMetric NUM_OPTION_ICONS; + ThemeMetric OPTION_ICON_METRICS_GROUP; vector m_vpOptionIcon; }; diff --git a/stepmania/src/OptionRow.cpp b/stepmania/src/OptionRow.cpp index 6d4fc5f94c..4db0f12dd9 100644 --- a/stepmania/src/OptionRow.cpp +++ b/stepmania/src/OptionRow.cpp @@ -84,8 +84,8 @@ void OptionRowType::Load( const RString &sType, Actor *pParent ) { m_sType = sType; - ROWFRAME_X .Load(sType,"RowFrameX"); - ROWFRAME_ON_COMMAND .Load(sType,"RowFrameOnCommand"); + FRAME_X .Load(sType,"FrameX"); + FRAME_ON_COMMAND .Load(sType,"FrameOnCommand"); TITLE_X .Load(sType,"TitleX"); TITLE_ON_COMMAND .Load(sType,"TitleOnCommand"); TITLE_GAIN_FOCUS_COMMAND .Load(sType,"TitleGainFocusCommand"); @@ -110,6 +110,7 @@ void OptionRowType::Load( const RString &sType, Actor *pParent ) SHOW_BPM_IN_SPEED_TITLE .Load(sType,"ShowBpmInSpeedTitle"); SHOW_OPTION_ICONS .Load(sType,"ShowOptionIcons"); SHOW_UNDERLINES .Load(sType,"ShowUnderlines"); + OPTION_ICON_METRICS_GROUP .Load(sType,"OptionIconMetricsGroup"); m_textItem.LoadFromFont( THEME->GetPathF(sType,"item") ); if( SHOW_UNDERLINES ) @@ -118,10 +119,10 @@ void OptionRowType::Load( const RString &sType, Actor *pParent ) m_Underline[p].Load( sType, OptionsCursor::underline, p ); } m_textTitle.LoadFromFont( THEME->GetPathF(sType,"title") ); - m_sprRowFrameNormal.Load( ActorUtil::MakeActor( THEME->GetPathG(sType,"RowFrameNormal"), pParent ) ); - m_sprRowFrameExit.Load( ActorUtil::MakeActor( THEME->GetPathG(sType,"RowFrameExit"), pParent ) ); + m_sprFrameNormal.Load( ActorUtil::MakeActor( THEME->GetPathG(sType,"FrameNormal"), pParent ) ); + m_sprFrameExit.Load( ActorUtil::MakeActor( THEME->GetPathG(sType,"FrameExit"), pParent ) ); if( SHOW_OPTION_ICONS ) - m_OptionIcon.Load( sType ); + m_OptionIcon.Load( OPTION_ICON_METRICS_GROUP ); } void OptionRow::LoadNormal( OptionRowHandler *pHand, bool bFirstItemGoesDown ) @@ -255,14 +256,14 @@ void OptionRow::InitText( RowType type ) { DEFAULT_FAIL( type ); case RowType_Normal: - m_sprRowFrame = m_pParentType->m_sprRowFrameNormal->Copy(); + m_sprFrame = m_pParentType->m_sprFrameNormal->Copy(); break; case RowType_Exit: - m_sprRowFrame = m_pParentType->m_sprRowFrameExit->Copy(); + m_sprFrame = m_pParentType->m_sprFrameExit->Copy(); break; } - m_sprRowFrame->SetDrawOrder(-1); // under title - m_Frame.AddChild( m_sprRowFrame ); + m_sprFrame->SetDrawOrder(-1); // under title + m_Frame.AddChild( m_sprFrame ); if( m_pParentType->SHOW_OPTION_ICONS ) { @@ -414,11 +415,11 @@ void OptionRow::InitText( RowType type ) switch( GetRowType() ) { case OptionRow::RowType_Normal: - m_sprRowFrame->SetX( m_pParentType->ROWFRAME_X ); - m_sprRowFrame->RunCommands( m_pParentType->ROWFRAME_ON_COMMAND ); + m_sprFrame->SetX( m_pParentType->FRAME_X ); + m_sprFrame->RunCommands( m_pParentType->FRAME_ON_COMMAND ); break; case OptionRow::RowType_Exit: - m_sprRowFrame->SetVisible( false ); + m_sprFrame->SetVisible( false ); break; } @@ -590,9 +591,9 @@ void OptionRow::UpdateEnabledDisabled() else if( bRowEnabled ) color = m_pParentType->COLOR_NOT_SELECTED; else color = m_pParentType->COLOR_DISABLED; - if( m_sprRowFrame != NULL ) - m_sprRowFrame->SetGlobalDiffuseColor( color ); - m_sprRowFrame->PlayCommand( bThisRowHasFocusByAny ? "GainFocus" : "LoseFocus" ); + if( m_sprFrame != NULL ) + m_sprFrame->SetGlobalDiffuseColor( color ); + m_sprFrame->PlayCommand( bThisRowHasFocusByAny ? "GainFocus" : "LoseFocus" ); m_textTitle->SetGlobalDiffuseColor( color ); @@ -676,7 +677,7 @@ void OptionRow::SetOptionIcon( PlayerNumber pn, const RString &sText, GameComman // update row frame Message msg( "Refresh" ); msg.SetParam( "GameCommand", &gc ); - m_sprRowFrame->HandleMessage( msg ); + m_sprFrame->HandleMessage( msg ); if( m_OptionIcons[pn] != NULL ) m_OptionIcons[pn]->Set( sText ); } diff --git a/stepmania/src/OptionRow.h b/stepmania/src/OptionRow.h index b17f7efa03..053d9336cc 100644 --- a/stepmania/src/OptionRow.h +++ b/stepmania/src/OptionRow.h @@ -24,14 +24,14 @@ private: BitmapText m_textItem; OptionsCursor m_Underline[NUM_PLAYERS]; - AutoActor m_sprRowFrameNormal; - AutoActor m_sprRowFrameExit; + AutoActor m_sprFrameNormal; + AutoActor m_sprFrameExit; BitmapText m_textTitle; OptionIcon m_OptionIcon; // metrics - ThemeMetric ROWFRAME_X; - ThemeMetric ROWFRAME_ON_COMMAND; + ThemeMetric FRAME_X; + ThemeMetric FRAME_ON_COMMAND; ThemeMetric TITLE_X; ThemeMetric TITLE_ON_COMMAND; ThemeMetric TITLE_GAIN_FOCUS_COMMAND; @@ -56,6 +56,7 @@ private: ThemeMetric SHOW_BPM_IN_SPEED_TITLE; ThemeMetric SHOW_OPTION_ICONS; ThemeMetric SHOW_UNDERLINES; + ThemeMetric OPTION_ICON_METRICS_GROUP; friend class OptionRow; }; @@ -140,7 +141,7 @@ protected: vector m_textItems; // size depends on m_bRowIsLong and which players are joined vector m_Underline[NUM_PLAYERS]; // size depends on m_bRowIsLong and which players are joined - Actor *m_sprRowFrame; + Actor *m_sprFrame; BitmapText *m_textTitle; OptionIcon *m_OptionIcons[NUM_PLAYERS]; diff --git a/stepmania/src/OptionsCursor.cpp b/stepmania/src/OptionsCursor.cpp index c91ba7d11b..1083df30bc 100644 --- a/stepmania/src/OptionsCursor.cpp +++ b/stepmania/src/OptionsCursor.cpp @@ -39,7 +39,7 @@ OptionsCursorPlus::OptionsCursorPlus( const OptionsCursorPlus &cpy ): void OptionsCursor::Load( const RString &sType, Element elem, PlayerNumber pn ) { - RString sElem = ssprintf( "%s %s 3x1", elem==cursor?"cursor":"underline", PlayerNumberToString(pn).c_str() ); + RString sElem = ssprintf( "%s %s", elem==cursor?"cursor":"underline", PlayerNumberToString(pn).c_str() ); RString sPath = THEME->GetPathG( sType, sElem ); m_sprMiddle.Load( sPath ); diff --git a/stepmania/src/ScreenOptions.cpp b/stepmania/src/ScreenOptions.cpp index a0d6ff5586..f02fb844c3 100644 --- a/stepmania/src/ScreenOptions.cpp +++ b/stepmania/src/ScreenOptions.cpp @@ -99,6 +99,7 @@ void ScreenOptions::Init() ALLOW_REPEATING_CHANGE_VALUE_INPUT.Load( m_sName, "AllowRepeatingChangeValueInput" ); CURSOR_TWEEN_SECONDS.Load( m_sName, "CursorTweenSeconds" ); WRAP_VALUE_IN_ROW.Load( m_sName, "WrapValueInRow" ); + OPTION_ROW_METRICS_GROUP.Load( m_sName, "OptionRowMetricsGroup" ); m_exprRowPositionTransformFunction.SetFromReference( THEME->GetMetricR(m_sName,"RowPositionTransformFunction") ); @@ -183,7 +184,7 @@ void ScreenOptions::Init() m_sprMore->PlayCommand( "LoseFocus" ); m_framePage.AddChild( m_sprMore ); - m_OptionRowType.Load( m_sName, this ); + m_OptionRowType.Load( OPTION_ROW_METRICS_GROUP, this ); } void ScreenOptions::InitMenu( const vector &vHands ) diff --git a/stepmania/src/ScreenOptions.h b/stepmania/src/ScreenOptions.h index 4ff3ddd1d6..03a7bfe52e 100644 --- a/stepmania/src/ScreenOptions.h +++ b/stepmania/src/ScreenOptions.h @@ -145,6 +145,7 @@ protected: // derived classes need access to these ThemeMetric ALLOW_REPEATING_CHANGE_VALUE_INPUT; ThemeMetric CURSOR_TWEEN_SECONDS; ThemeMetric WRAP_VALUE_IN_ROW; + ThemeMetric OPTION_ROW_METRICS_GROUP; }; #endif