Have OptionRow load from its own metrics group rather than from ScreeOptions. The purpose of some elements isn't clear from the element name when everything loads from one group.
This commit is contained in:
@@ -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 );
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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; i<NUM_OPTION_ICONS; i++ )
|
||||
{
|
||||
OptionIcon *p = new OptionIcon;
|
||||
p->SetName( "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 );
|
||||
|
||||
@@ -35,6 +35,7 @@ protected:
|
||||
ThemeMetric<float> SPACING_X;
|
||||
ThemeMetric<float> SPACING_Y;
|
||||
ThemeMetric<int> NUM_OPTION_ICONS;
|
||||
ThemeMetric<RString> OPTION_ICON_METRICS_GROUP;
|
||||
|
||||
vector<OptionIcon*> m_vpOptionIcon;
|
||||
};
|
||||
|
||||
+17
-16
@@ -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 );
|
||||
}
|
||||
|
||||
@@ -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<float> ROWFRAME_X;
|
||||
ThemeMetric<apActorCommands> ROWFRAME_ON_COMMAND;
|
||||
ThemeMetric<float> FRAME_X;
|
||||
ThemeMetric<apActorCommands> FRAME_ON_COMMAND;
|
||||
ThemeMetric<float> TITLE_X;
|
||||
ThemeMetric<apActorCommands> TITLE_ON_COMMAND;
|
||||
ThemeMetric<apActorCommands> TITLE_GAIN_FOCUS_COMMAND;
|
||||
@@ -56,6 +56,7 @@ private:
|
||||
ThemeMetric<bool> SHOW_BPM_IN_SPEED_TITLE;
|
||||
ThemeMetric<bool> SHOW_OPTION_ICONS;
|
||||
ThemeMetric<bool> SHOW_UNDERLINES;
|
||||
ThemeMetric<RString> OPTION_ICON_METRICS_GROUP;
|
||||
|
||||
friend class OptionRow;
|
||||
};
|
||||
@@ -140,7 +141,7 @@ protected:
|
||||
vector<BitmapText *> m_textItems; // size depends on m_bRowIsLong and which players are joined
|
||||
vector<OptionsCursor *> 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];
|
||||
|
||||
|
||||
@@ -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 );
|
||||
|
||||
@@ -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<OptionRowHandler*> &vHands )
|
||||
|
||||
@@ -145,6 +145,7 @@ protected: // derived classes need access to these
|
||||
ThemeMetric<bool> ALLOW_REPEATING_CHANGE_VALUE_INPUT;
|
||||
ThemeMetric<float> CURSOR_TWEEN_SECONDS;
|
||||
ThemeMetric<bool> WRAP_VALUE_IN_ROW;
|
||||
ThemeMetric<RString> OPTION_ROW_METRICS_GROUP;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user