move many metrics into OptionRow for easier reloading

This commit is contained in:
Chris Danford
2005-02-25 16:48:54 +00:00
parent 7d3f3a1bef
commit d004d5cbfa
4 changed files with 121 additions and 138 deletions
+92 -57
View File
@@ -24,6 +24,8 @@ StringToX( LayoutType );
const CString NEXT_ROW_NAME = "NextRow"; const CString NEXT_ROW_NAME = "NextRow";
CString ITEMS_LONG_ROW_X_NAME( size_t p ) { return ssprintf("ItemsLongRowP%dX",p+1); }
CString ICONS_X_NAME( size_t p ) { return ssprintf("IconsP%dX",p+1); }
OptionRow::OptionRow() OptionRow::OptionRow()
{ {
@@ -72,6 +74,25 @@ void OptionRow::DetachHandler()
m_pHand = NULL; m_pHand = NULL;
} }
void OptionRow::LoadMetrics( const CString &sType )
{
m_sType = sType;
ARROWS_X .Load(m_sType,"ArrowsX");
LABELS_X .Load(m_sType,"LabelsX");
LABELS_ON_COMMAND .Load(m_sType,"LabelsOnCommand");
ITEMS_ZOOM .Load(m_sType,"ItemsZoom");
ITEMS_START_X .Load(m_sType,"ItemsStartX");
ITEMS_END_X .Load(m_sType,"ItemsEndX");
ITEMS_GAP_X .Load(m_sType,"ItemsGapX");
ITEMS_LONG_ROW_X .Load(m_sType,ITEMS_LONG_ROW_X_NAME,NUM_PLAYERS);
ITEMS_LONG_ROW_SHARED_X .Load(m_sType,"ItemsLongRowSharedX");
ICONS_X .Load(m_sType,ICONS_X_NAME,NUM_PLAYERS);
COLOR_SELECTED .Load(m_sType,"ColorSelected");
COLOR_NOT_SELECTED .Load(m_sType,"ColorNotSelected");
COLOR_DISABLED .Load(m_sType,"ColorDisabled");
CAPITALIZE_ALL_OPTION_NAMES .Load(m_sType,"CapitalizeAllOptionNames");
}
void OptionRow::LoadNormal( const OptionRowDefinition &def, OptionRowHandler *pHand, bool bFirstItemGoesDown ) void OptionRow::LoadNormal( const OptionRowDefinition &def, OptionRowHandler *pHand, bool bFirstItemGoesDown )
{ {
m_RowDef = def; m_RowDef = def;
@@ -112,23 +133,27 @@ void OptionRow::LoadNormal( const OptionRowDefinition &def, OptionRowHandler *pH
void OptionRow::AfterImportOptions( void OptionRow::AfterImportOptions(
Font* pFont, Font* pFont,
float fItemStartX,
float fItemGapX,
float fItemEndX,
float fItemLongRowSharedX,
const ThemeMetric1D<float> &fItemLongRowX,
float fItemZoom,
bool bCapitalizeAllOptionNames,
const CString &sFontItemPath,
const CString &sFontTitlePath,
const CString &sTitle, const CString &sTitle,
const CString &sBulletPath, float fY
float fLabelX,
float fArrowX,
float fY,
const ThemeMetric<apActorCommands> &cmdLabelOn
) )
{ {
/*
ITEMS_START_X,
ITEMS_GAP_X,
ITEMS_END_X,
ITEMS_LONG_ROW_SHARED_X,
ITEMS_LONG_ROW_X,
ITEMS_ZOOM,
CAPITALIZE_ALL_OPTION_NAMES,
THEME->GetPathF(m_sType,"item"),
THEME->GetPathF(m_sType,"title"),
THEME->GetPathG(m_sType,"bullet"),
LABELS_X,
ARROWS_X,
LABELS_ON_COMMAND
*/
// Make all selections the same if bOneChoiceForAllPlayers // Make all selections the same if bOneChoiceForAllPlayers
if( m_RowDef.bOneChoiceForAllPlayers ) if( m_RowDef.bOneChoiceForAllPlayers )
{ {
@@ -174,19 +199,19 @@ void OptionRow::AfterImportOptions(
// If the items will go off the edge of the screen, then re-init with the "long row" style. // If the items will go off the edge of the screen, then re-init with the "long row" style.
{ {
float fX = fItemStartX; float fX = ITEMS_START_X;
for( unsigned c=0; c<m_RowDef.choices.size(); c++ ) for( unsigned c=0; c<m_RowDef.choices.size(); c++ )
{ {
CString sText = m_RowDef.choices[c]; CString sText = m_RowDef.choices[c];
if( bCapitalizeAllOptionNames ) if( CAPITALIZE_ALL_OPTION_NAMES )
sText.MakeUpper(); sText.MakeUpper();
fX += fItemZoom * pFont->GetLineWidthInSourcePixels( CStringToWstring(sText) ); fX += ITEMS_ZOOM * pFont->GetLineWidthInSourcePixels( CStringToWstring(sText) );
if( c != m_RowDef.choices.size()-1 ) if( c != m_RowDef.choices.size()-1 )
fX += fItemGapX; fX += ITEMS_GAP_X;
if( fX > fItemEndX ) if( fX > ITEMS_END_X )
{ {
m_RowDef.layoutType = LAYOUT_SHOW_ONE_IN_ROW; m_RowDef.layoutType = LAYOUT_SHOW_ONE_IN_ROW;
break; break;
@@ -208,22 +233,22 @@ void OptionRow::AfterImportOptions(
const int iChoiceInRowWithFocus = m_iChoiceInRowWithFocus[p]; const int iChoiceInRowWithFocus = m_iChoiceInRowWithFocus[p];
bt->LoadFromFont( sFontItemPath ); bt->LoadFromFont( THEME->GetPathF(m_sType,"item") );
CString sText = m_RowDef.choices[iChoiceInRowWithFocus]; CString sText = m_RowDef.choices[iChoiceInRowWithFocus];
if( bCapitalizeAllOptionNames ) if( CAPITALIZE_ALL_OPTION_NAMES )
sText.MakeUpper(); sText.MakeUpper();
bt->SetText( sText ); bt->SetText( sText );
bt->SetZoom( fItemZoom ); bt->SetZoom( ITEMS_ZOOM );
bt->SetShadowLength( 0 ); bt->SetShadowLength( 0 );
if( m_RowDef.bOneChoiceForAllPlayers ) if( m_RowDef.bOneChoiceForAllPlayers )
{ {
bt->SetX( fItemLongRowSharedX ); bt->SetX( ITEMS_LONG_ROW_SHARED_X );
break; // only initialize one item since it's shared break; // only initialize one item since it's shared
} }
else else
{ {
bt->SetX( fItemLongRowX.GetValue(p) ); bt->SetX( ITEMS_LONG_ROW_X.GetValue(p) );
} }
} }
@@ -242,18 +267,18 @@ void OptionRow::AfterImportOptions(
case LAYOUT_SHOW_ALL_IN_ROW: case LAYOUT_SHOW_ALL_IN_ROW:
{ {
float fX = fItemStartX; float fX = ITEMS_START_X;
for( unsigned c=0; c<m_RowDef.choices.size(); c++ ) for( unsigned c=0; c<m_RowDef.choices.size(); c++ )
{ {
// init text // init text
BitmapText *bt = new BitmapText; BitmapText *bt = new BitmapText;
m_textItems.push_back( bt ); m_textItems.push_back( bt );
bt->LoadFromFont( sFontItemPath ); bt->LoadFromFont( THEME->GetPathF(m_sType,"item") );
CString sText = m_RowDef.choices[c]; CString sText = m_RowDef.choices[c];
if( bCapitalizeAllOptionNames ) if( CAPITALIZE_ALL_OPTION_NAMES )
sText.MakeUpper(); sText.MakeUpper();
bt->SetText( sText ); bt->SetText( sText );
bt->SetZoom( fItemZoom ); bt->SetZoom( ITEMS_ZOOM );
bt->SetShadowLength( 0 ); bt->SetShadowLength( 0 );
// set the X position of each item in the line // set the X position of each item in the line
@@ -271,7 +296,7 @@ void OptionRow::AfterImportOptions(
ul->SetWidth( truncf(fItemWidth) ); ul->SetWidth( truncf(fItemWidth) );
} }
fX += fItemWidth/2 + fItemGapX; fX += fItemWidth/2 + ITEMS_GAP_X;
} }
} }
break; break;
@@ -287,13 +312,13 @@ void OptionRow::AfterImportOptions(
this->AddChild( m_Underline[p][c] ); this->AddChild( m_Underline[p][c] );
m_textTitle.LoadFromFont( sFontTitlePath ); m_textTitle.LoadFromFont( THEME->GetPathF(m_sType,"title") );
m_textTitle.SetText( sTitle ); m_textTitle.SetText( sTitle );
m_textTitle.SetXY( fLabelX, fY ); m_textTitle.SetXY( LABELS_X, fY );
m_textTitle.RunCommands( cmdLabelOn ); m_textTitle.RunCommands( LABELS_ON_COMMAND );
m_sprBullet.Load( sBulletPath ); m_sprBullet.Load( THEME->GetPathG(m_sType,"bullet") );
m_sprBullet.SetXY( fArrowX, fY ); m_sprBullet.SetXY( ARROWS_X, fY );
// set the Y position of each item in the line // set the Y position of each item in the line
for( unsigned c=0; c<m_textItems.size(); c++ ) for( unsigned c=0; c<m_textItems.size(); c++ )
@@ -307,23 +332,24 @@ void OptionRow::AfterImportOptions(
m_iChoiceInRowWithFocus[p] = 0; m_iChoiceInRowWithFocus[p] = 0;
} }
void OptionRow::LoadExit( void OptionRow::LoadExit()
const CString &sFontPath,
const CString &sExitText,
float fItemLongRowSharedX,
float fItemZoom
)
{ {
/*
THEME->GetPathF(m_sType,"item"),
THEME->GetMetric("OptionNames","Exit"),
ITEMS_LONG_ROW_SHARED_X,
ITEMS_ZOOM
*/
m_RowType = OptionRow::ROW_EXIT; m_RowType = OptionRow::ROW_EXIT;
BitmapText *bt = new BitmapText; BitmapText *bt = new BitmapText;
m_textItems.push_back( bt ); m_textItems.push_back( bt );
bt->LoadFromFont( sFontPath ); bt->LoadFromFont( THEME->GetPathF(m_sType,"item") );
bt->SetText( sExitText ); bt->SetText( THEME->GetMetric("OptionNames","Exit") );
bt->SetZoom( fItemZoom ); bt->SetZoom( ITEMS_ZOOM );
bt->SetShadowLength( 0 ); bt->SetShadowLength( 0 );
bt->SetX( fItemLongRowSharedX ); bt->SetX( ITEMS_LONG_ROW_SHARED_X );
this->AddChild( bt ); this->AddChild( bt );
FOREACH_PlayerNumber( p ) FOREACH_PlayerNumber( p )
@@ -375,8 +401,11 @@ void OptionRow::PositionUnderlines( bool bShowUnderlines, float fTweenSeconds )
} }
} }
void OptionRow::PositionIcons( const ThemeMetric1D<float> &fIconX, float fTweenSeconds ) void OptionRow::PositionIcons( float fTweenSeconds )
{ {
/*
ICONS_X
*/
if( m_RowType == OptionRow::ROW_EXIT ) if( m_RowType == OptionRow::ROW_EXIT )
return; return;
@@ -388,7 +417,7 @@ void OptionRow::PositionIcons( const ThemeMetric1D<float> &fIconX, float fTweenS
int iWidth, iX, iY; // We only use iY int iWidth, iX, iY; // We only use iY
GetWidthXY( p, iChoiceWithFocus, iWidth, iX, iY ); GetWidthXY( p, iChoiceWithFocus, iWidth, iX, iY );
icon.SetX( fIconX.GetValue(p) ); icon.SetX( ICONS_X.GetValue(p) );
if( icon.GetDestY() != m_fY ) if( icon.GetDestY() != m_fY )
{ {
@@ -402,8 +431,11 @@ void OptionRow::PositionIcons( const ThemeMetric1D<float> &fIconX, float fTweenS
} }
} }
void OptionRow::UpdateText( bool bCapitalizeAllOptionNames ) void OptionRow::UpdateText()
{ {
/*
CAPITALIZE_ALL_OPTION_NAMES
*/
switch( m_RowDef.layoutType ) switch( m_RowDef.layoutType )
{ {
case LAYOUT_SHOW_ONE_IN_ROW: case LAYOUT_SHOW_ONE_IN_ROW:
@@ -416,7 +448,7 @@ void OptionRow::UpdateText( bool bCapitalizeAllOptionNames )
item_no = min( item_no, m_textItems.size()-1 ); item_no = min( item_no, m_textItems.size()-1 );
CString sText = m_RowDef.choices[iChoiceWithFocus]; CString sText = m_RowDef.choices[iChoiceWithFocus];
if( bCapitalizeAllOptionNames ) if( CAPITALIZE_ALL_OPTION_NAMES )
sText.MakeUpper(); sText.MakeUpper();
m_textItems[item_no]->SetText( sText ); m_textItems[item_no]->SetText( sText );
} }
@@ -426,11 +458,14 @@ void OptionRow::UpdateText( bool bCapitalizeAllOptionNames )
void OptionRow::UpdateEnabledDisabled( void OptionRow::UpdateEnabledDisabled(
bool bThisRowHasFocus[NUM_PLAYERS], bool bThisRowHasFocus[NUM_PLAYERS],
const RageColor &colorFocus,
const RageColor &colorNoFocus,
const RageColor &colorDisabled,
float fTweenSeconds ) float fTweenSeconds )
{ {
/*
COLOR_SELECTED,
COLOR_NOT_SELECTED,
COLOR_DISABLED,
*/
bool bThisRowHasFocusByAny = false; bool bThisRowHasFocusByAny = false;
FOREACH_HumanPlayer( p ) FOREACH_HumanPlayer( p )
bThisRowHasFocusByAny |= bThisRowHasFocus[p]; bThisRowHasFocusByAny |= bThisRowHasFocus[p];
@@ -442,7 +477,7 @@ void OptionRow::UpdateEnabledDisabled(
float fDiffuseAlpha = m_bHidden? 0.0f:1.0f; float fDiffuseAlpha = m_bHidden? 0.0f:1.0f;
/* Don't tween selection colors at all. */ /* Don't tween selection colors at all. */
RageColor color = bThisRowHasFocusByAny ? colorFocus:colorNoFocus; RageColor color = bThisRowHasFocusByAny ? COLOR_SELECTED:COLOR_NOT_SELECTED;
m_sprBullet.SetGlobalDiffuseColor( color ); m_sprBullet.SetGlobalDiffuseColor( color );
m_textTitle.SetGlobalDiffuseColor( color ); m_textTitle.SetGlobalDiffuseColor( color );
@@ -469,11 +504,11 @@ void OptionRow::UpdateEnabledDisabled(
bool bRowEnabled = m_RowDef.m_vEnabledForPlayers.find(pn) != m_RowDef.m_vEnabledForPlayers.end(); bool bRowEnabled = m_RowDef.m_vEnabledForPlayers.find(pn) != m_RowDef.m_vEnabledForPlayers.end();
if( bThisRowHasFocus[pn] ) if( bThisRowHasFocus[pn] )
color = colorFocus; color = COLOR_SELECTED;
else if( bRowEnabled ) else if( bRowEnabled )
color = colorNoFocus; color = COLOR_NOT_SELECTED;
else else
color = colorDisabled; color = COLOR_DISABLED;
color.a = (bRowEnabled && !m_bHidden) ? 1.0f:0.0f; color.a = (bRowEnabled && !m_bHidden) ? 1.0f:0.0f;
@@ -508,7 +543,7 @@ void OptionRow::UpdateEnabledDisabled(
if( m_RowType == OptionRow::ROW_EXIT ) if( m_RowType == OptionRow::ROW_EXIT )
{ {
if( bThisRowHasFocusByAll ) if( bThisRowHasFocusByAll )
m_textItems[0]->SetEffectDiffuseShift( 1.0f, colorFocus, colorNoFocus ); m_textItems[0]->SetEffectDiffuseShift( 1.0f, COLOR_SELECTED, COLOR_NOT_SELECTED );
else else
m_textItems[0]->SetEffectNone(); m_textItems[0]->SetEffectNone();
} }
@@ -621,7 +656,7 @@ void OptionRow::Reload()
{ {
ASSERT( m_RowDef.layoutType == LAYOUT_SHOW_ONE_IN_ROW ); ASSERT( m_RowDef.layoutType == LAYOUT_SHOW_ONE_IN_ROW );
m_RowDef = def; m_RowDef = def;
UpdateText( true ); UpdateText();
} }
break; break;
case OptionRow::ROW_EXIT: case OptionRow::ROW_EXIT:
+22 -25
View File
@@ -84,13 +84,9 @@ public:
~OptionRow(); ~OptionRow();
void Clear(); void Clear();
void LoadMetrics( const CString &sType );
void LoadNormal( const OptionRowDefinition &def, OptionRowHandler *pHand, bool bFirstItemGoesDown ); void LoadNormal( const OptionRowDefinition &def, OptionRowHandler *pHand, bool bFirstItemGoesDown );
void LoadExit( void LoadExit();
const CString &sFontPath,
const CString &sExitText,
float fItemLongRowSharedX,
float fItemZoom
);
void LoadOptionIcon( PlayerNumber pn, const CString &sText ); void LoadOptionIcon( PlayerNumber pn, const CString &sText );
void ImportOptions(); void ImportOptions();
@@ -98,32 +94,16 @@ public:
void AfterImportOptions( void AfterImportOptions(
Font* pFont, Font* pFont,
float fItemStartX,
float fItemGapX,
float fItemEndX,
float fItemLongRowSharedX,
const ThemeMetric1D<float> &fItemLongRowX,
float fItemZoom,
bool bCapitalizeAllOptionNames,
const CString &sFontItemPath,
const CString &sFontTitlePath,
const CString &sTitle, const CString &sTitle,
const CString &sBulletPath, float fY
float fLabelX,
float fArrowX,
float fY,
const ThemeMetric<apActorCommands> &cmdLabelOn
); );
void DetachHandler(); void DetachHandler();
void PositionUnderlines( bool bShowUnderlines, float fTweenSeconds ); void PositionUnderlines( bool bShowUnderlines, float fTweenSeconds );
void PositionIcons( const ThemeMetric1D<float> &fIconX, float fTweenSeconds ); void PositionIcons( float fTweenSeconds );
void UpdateText( bool bCapitalizeAllOptionNames ); void UpdateText();
void UpdateEnabledDisabled( void UpdateEnabledDisabled(
bool bThisRowHasFocus[NUM_PLAYERS], bool bThisRowHasFocus[NUM_PLAYERS],
const RageColor &colorFocus,
const RageColor &colorNoFocus,
const RageColor &colorDisabled,
float fTweenSeconds ); float fTweenSeconds );
int GetOneSelection( PlayerNumber pn, bool bAllowFail=false ) const; int GetOneSelection( PlayerNumber pn, bool bAllowFail=false ) const;
@@ -166,6 +146,7 @@ public:
virtual void HandleMessage( const CString& sMessage ); virtual void HandleMessage( const CString& sMessage );
protected: protected:
CString m_sType;
OptionRowDefinition m_RowDef; OptionRowDefinition m_RowDef;
RowType m_RowType; RowType m_RowType;
OptionRowHandler* m_pHand; OptionRowHandler* m_pHand;
@@ -179,6 +160,22 @@ protected:
float m_fY; float m_fY;
bool m_bHidden; // currently off screen bool m_bHidden; // currently off screen
// metrics
ThemeMetric<float> ARROWS_X;
ThemeMetric<float> LABELS_X;
ThemeMetric<apActorCommands> LABELS_ON_COMMAND;
ThemeMetric<float> ITEMS_ZOOM;
ThemeMetric<float> ITEMS_START_X;
ThemeMetric<float> ITEMS_END_X;
ThemeMetric<float> ITEMS_GAP_X;
ThemeMetric1D<float> ITEMS_LONG_ROW_X;
ThemeMetric<float> ITEMS_LONG_ROW_SHARED_X;
ThemeMetric1D<float> ICONS_X;
ThemeMetric<RageColor> COLOR_SELECTED;
ThemeMetric<RageColor> COLOR_NOT_SELECTED;
ThemeMetric<RageColor> COLOR_DISABLED;
ThemeMetric<bool> CAPITALIZE_ALL_OPTION_NAMES;
}; };
#endif #endif
+7 -42
View File
@@ -68,8 +68,6 @@
const float TWEEN_SECONDS = 0.3f; const float TWEEN_SECONDS = 0.3f;
CString ROW_Y_NAME( size_t r ) { return ssprintf("Row%dY",r+1); } CString ROW_Y_NAME( size_t r ) { return ssprintf("Row%dY",r+1); }
CString ITEMS_LONG_ROW_X_NAME( size_t p ) { return ssprintf("ItemsLongRowP%dX",p+1); }
CString ICONS_X_NAME( size_t p ) { return ssprintf("IconsP%dX",p+1); }
CString EXPLANATION_X_NAME( size_t p ) { return ssprintf("ExplanationP%dX",p+1); } CString EXPLANATION_X_NAME( size_t p ) { return ssprintf("ExplanationP%dX",p+1); }
CString EXPLANATION_Y_NAME( size_t p ) { return ssprintf("ExplanationP%dY",p+1); } CString EXPLANATION_Y_NAME( size_t p ) { return ssprintf("ExplanationP%dY",p+1); }
CString EXPLANATION_ON_COMMAND_NAME( size_t p ) { return ssprintf("ExplanationP%dOnCommand",p+1); } CString EXPLANATION_ON_COMMAND_NAME( size_t p ) { return ssprintf("ExplanationP%dOnCommand",p+1); }
@@ -77,21 +75,11 @@ CString EXPLANATION_ON_COMMAND_NAME( size_t p ) { return ssprintf("ExplanationP%
//REGISTER_SCREEN_CLASS( ScreenOptions ); // can't be instantiated //REGISTER_SCREEN_CLASS( ScreenOptions ); // can't be instantiated
ScreenOptions::ScreenOptions( CString sClassName ) : ScreenWithMenuElements(sClassName), ScreenOptions::ScreenOptions( CString sClassName ) : ScreenWithMenuElements(sClassName),
ARROWS_X (m_sName,"ArrowsX"),
LABELS_X (m_sName,"LabelsX"),
LABELS_ON_COMMAND (m_sName,"LabelsOnCommand"),
NUM_ROWS_SHOWN (m_sName,"NumRowsShown"), NUM_ROWS_SHOWN (m_sName,"NumRowsShown"),
ROW_Y (m_sName,ROW_Y_NAME,NUM_ROWS_SHOWN), ROW_Y (m_sName,ROW_Y_NAME,NUM_ROWS_SHOWN),
ROW_Y_OFF_SCREEN_TOP (m_sName,"RowYOffScreenTop"), ROW_Y_OFF_SCREEN_TOP (m_sName,"RowYOffScreenTop"),
ROW_Y_OFF_SCREEN_CENTER (m_sName,"RowYOffScreenCenter"), ROW_Y_OFF_SCREEN_CENTER (m_sName,"RowYOffScreenCenter"),
ROW_Y_OFF_SCREEN_BOTTOM (m_sName,"RowYOffScreenBottom"), ROW_Y_OFF_SCREEN_BOTTOM (m_sName,"RowYOffScreenBottom"),
ITEMS_ZOOM (m_sName,"ItemsZoom"),
ITEMS_START_X (m_sName,"ItemsStartX"),
ITEMS_END_X (m_sName,"ItemsEndX"),
ITEMS_GAP_X (m_sName,"ItemsGapX"),
ITEMS_LONG_ROW_X (m_sName,ITEMS_LONG_ROW_X_NAME,NUM_PLAYERS),
ITEMS_LONG_ROW_SHARED_X (m_sName,"ItemsLongRowSharedX"),
ICONS_X (m_sName,ICONS_X_NAME,NUM_PLAYERS),
EXPLANATION_X (m_sName,EXPLANATION_X_NAME,NUM_PLAYERS), EXPLANATION_X (m_sName,EXPLANATION_X_NAME,NUM_PLAYERS),
EXPLANATION_Y (m_sName,EXPLANATION_Y_NAME,NUM_PLAYERS), EXPLANATION_Y (m_sName,EXPLANATION_Y_NAME,NUM_PLAYERS),
EXPLANATION_ON_COMMAND (m_sName,EXPLANATION_ON_COMMAND_NAME,NUM_PLAYERS), EXPLANATION_ON_COMMAND (m_sName,EXPLANATION_ON_COMMAND_NAME,NUM_PLAYERS),
@@ -102,15 +90,11 @@ ScreenOptions::ScreenOptions( CString sClassName ) : ScreenWithMenuElements(sCla
SCROLL_BAR_HEIGHT (m_sName,"ScrollBarHeight"), SCROLL_BAR_HEIGHT (m_sName,"ScrollBarHeight"),
SCROLL_BAR_TIME (m_sName,"ScrollBarTime"), SCROLL_BAR_TIME (m_sName,"ScrollBarTime"),
EXPLANATION_ZOOM (m_sName,"ExplanationZoom"), EXPLANATION_ZOOM (m_sName,"ExplanationZoom"),
COLOR_SELECTED (m_sName,"ColorSelected"),
COLOR_NOT_SELECTED (m_sName,"ColorNotSelected"),
COLOR_DISABLED (m_sName,"ColorDisabled"),
SHOW_BPM_IN_SPEED_TITLE (m_sName,"ShowBpmInSpeedTitle"), SHOW_BPM_IN_SPEED_TITLE (m_sName,"ShowBpmInSpeedTitle"),
FRAME_ON_COMMAND (m_sName,"FrameOnCommand"), FRAME_ON_COMMAND (m_sName,"FrameOnCommand"),
FRAME_OFF_COMMAND (m_sName,"FrameOffCommand"), FRAME_OFF_COMMAND (m_sName,"FrameOffCommand"),
SEPARATE_EXIT_ROW (m_sName,"SeparateExitRow"), SEPARATE_EXIT_ROW (m_sName,"SeparateExitRow"),
SEPARATE_EXIT_ROW_Y (m_sName,"SeparateExitRowY"), SEPARATE_EXIT_ROW_Y (m_sName,"SeparateExitRowY")
CAPITALIZE_ALL_OPTION_NAMES (m_sName,"CapitalizeAllOptionNames")
{ {
LOG->Trace( "ScreenOptions::ScreenOptions()" ); LOG->Trace( "ScreenOptions::ScreenOptions()" );
} }
@@ -169,6 +153,7 @@ void ScreenOptions::InitMenu( InputMode im, const vector<OptionRowDefinition> &v
bool bFirstRowGoesDown = m_OptionsNavigation==NAV_TOGGLE_THREE_KEY; bool bFirstRowGoesDown = m_OptionsNavigation==NAV_TOGGLE_THREE_KEY;
row.LoadMetrics( m_sName );
row.LoadNormal( vDefs[r], vHands[r], bFirstRowGoesDown ); row.LoadNormal( vDefs[r], vHands[r], bFirstRowGoesDown );
this->ImportOptions( r ); this->ImportOptions( r );
@@ -181,21 +166,8 @@ void ScreenOptions::InitMenu( InputMode im, const vector<OptionRowDefinition> &v
row.AfterImportOptions( row.AfterImportOptions(
pFont, pFont,
ITEMS_START_X,
ITEMS_GAP_X,
ITEMS_END_X,
ITEMS_LONG_ROW_SHARED_X,
ITEMS_LONG_ROW_X,
ITEMS_ZOOM,
CAPITALIZE_ALL_OPTION_NAMES,
THEME->GetPathF(m_sName,"item"),
THEME->GetPathF(m_sName,"title"),
GetExplanationTitle( r ), GetExplanationTitle( r ),
THEME->GetPathG(m_sName,"bullet"), fY
LABELS_X,
ARROWS_X,
fY,
LABELS_ON_COMMAND
); );
} }
@@ -233,12 +205,8 @@ void ScreenOptions::InitMenu( InputMode im, const vector<OptionRowDefinition> &v
// TRICKY: Add one more item. This will be "EXIT" // TRICKY: Add one more item. This will be "EXIT"
m_Rows.push_back( new OptionRow() ); m_Rows.push_back( new OptionRow() );
OptionRow &row = *m_Rows.back(); OptionRow &row = *m_Rows.back();
row.LoadExit( row.LoadMetrics( m_sName );
THEME->GetPathF(m_sName,"item"), row.LoadExit();
THEME->GetMetric("OptionNames","Exit"),
ITEMS_LONG_ROW_SHARED_X,
ITEMS_ZOOM
);
m_framePage.AddChild( &row ); m_framePage.AddChild( &row );
@@ -426,7 +394,7 @@ void ScreenOptions::PositionIcons()
for( unsigned i=0; i<m_Rows.size(); i++ ) // foreach options line for( unsigned i=0; i<m_Rows.size(); i++ ) // foreach options line
{ {
OptionRow &row = *m_Rows[i]; OptionRow &row = *m_Rows[i];
row.PositionIcons( ICONS_X, TWEEN_SECONDS ); row.PositionIcons( TWEEN_SECONDS );
continue; continue;
} }
} }
@@ -494,7 +462,7 @@ void ScreenOptions::TweenCursor( PlayerNumber pn )
void ScreenOptions::UpdateText( int iRow ) void ScreenOptions::UpdateText( int iRow )
{ {
OptionRow &row = *m_Rows[iRow]; OptionRow &row = *m_Rows[iRow];
row.UpdateText( CAPITALIZE_ALL_OPTION_NAMES ); row.UpdateText();
} }
void ScreenOptions::UpdateEnabledDisabled( int r ) void ScreenOptions::UpdateEnabledDisabled( int r )
@@ -507,9 +475,6 @@ void ScreenOptions::UpdateEnabledDisabled( int r )
row.UpdateEnabledDisabled( row.UpdateEnabledDisabled(
bRowHasFocus, bRowHasFocus,
COLOR_SELECTED,
COLOR_NOT_SELECTED,
COLOR_DISABLED,
TWEEN_SECONDS ); TWEEN_SECONDS );
} }
-14
View File
@@ -117,21 +117,11 @@ protected:
RageSound m_SoundToggleOff; RageSound m_SoundToggleOff;
// metrics // metrics
ThemeMetric<float> ARROWS_X;
ThemeMetric<float> LABELS_X;
ThemeMetric<apActorCommands> LABELS_ON_COMMAND;
ThemeMetric<int> NUM_ROWS_SHOWN; ThemeMetric<int> NUM_ROWS_SHOWN;
ThemeMetric1D<float> ROW_Y; ThemeMetric1D<float> ROW_Y;
ThemeMetric<float> ROW_Y_OFF_SCREEN_TOP; ThemeMetric<float> ROW_Y_OFF_SCREEN_TOP;
ThemeMetric<float> ROW_Y_OFF_SCREEN_CENTER; ThemeMetric<float> ROW_Y_OFF_SCREEN_CENTER;
ThemeMetric<float> ROW_Y_OFF_SCREEN_BOTTOM; ThemeMetric<float> ROW_Y_OFF_SCREEN_BOTTOM;
ThemeMetric<float> ITEMS_ZOOM;
ThemeMetric<float> ITEMS_START_X;
ThemeMetric<float> ITEMS_END_X;
ThemeMetric<float> ITEMS_GAP_X;
ThemeMetric1D<float> ITEMS_LONG_ROW_X;
ThemeMetric<float> ITEMS_LONG_ROW_SHARED_X;
ThemeMetric1D<float> ICONS_X;
ThemeMetric1D<float> EXPLANATION_X; ThemeMetric1D<float> EXPLANATION_X;
ThemeMetric1D<float> EXPLANATION_Y; ThemeMetric1D<float> EXPLANATION_Y;
ThemeMetric1D<apActorCommands> EXPLANATION_ON_COMMAND; ThemeMetric1D<apActorCommands> EXPLANATION_ON_COMMAND;
@@ -142,15 +132,11 @@ protected:
ThemeMetric<float> SCROLL_BAR_HEIGHT; ThemeMetric<float> SCROLL_BAR_HEIGHT;
ThemeMetric<float> SCROLL_BAR_TIME; ThemeMetric<float> SCROLL_BAR_TIME;
ThemeMetric<float> EXPLANATION_ZOOM; ThemeMetric<float> EXPLANATION_ZOOM;
ThemeMetric<RageColor> COLOR_SELECTED;
ThemeMetric<RageColor> COLOR_NOT_SELECTED;
ThemeMetric<RageColor> COLOR_DISABLED;
ThemeMetric<bool> SHOW_BPM_IN_SPEED_TITLE; ThemeMetric<bool> SHOW_BPM_IN_SPEED_TITLE;
ThemeMetric<apActorCommands> FRAME_ON_COMMAND; ThemeMetric<apActorCommands> FRAME_ON_COMMAND;
ThemeMetric<apActorCommands> FRAME_OFF_COMMAND; ThemeMetric<apActorCommands> FRAME_OFF_COMMAND;
ThemeMetric<bool> SEPARATE_EXIT_ROW; ThemeMetric<bool> SEPARATE_EXIT_ROW;
ThemeMetric<float> SEPARATE_EXIT_ROW_Y; ThemeMetric<float> SEPARATE_EXIT_ROW_Y;
ThemeMetric<bool> CAPITALIZE_ALL_OPTION_NAMES;
}; };
#endif #endif