diff --git a/stepmania/Themes/default/metrics.ini b/stepmania/Themes/default/metrics.ini index 6c8c299d12..37634a1ed0 100644 --- a/stepmania/Themes/default/metrics.ini +++ b/stepmania/Themes/default/metrics.ini @@ -2501,13 +2501,13 @@ IconsP2X=SCREEN_CENTER_X+280 ArrowsX=SCREEN_CENTER_X-232 LabelsX=SCREEN_CENTER_X-180 LabelsOnCommand=zoom,0.7;horizalign,right;ShadowLength,0 -ItemsZoom=0.5 ItemsStartX=SCREEN_CENTER_X-160 ItemsEndX=SCREEN_CENTER_X+280 ItemsGapX=14 ItemsLongRowP1X=SCREEN_CENTER_X-60 ItemsLongRowP2X=SCREEN_CENTER_X+100 ItemsLongRowSharedX=SCREEN_CENTER_X+20 +ItemsOnCommand=zoom,0.5 ColorSelected=1,1,1,1 ColorNotSelected=0.5,0.5,0.5,1 ColorDisabled=0.1,0.1,0.1,1 @@ -4310,16 +4310,17 @@ HeaderOnCommand= IconsP1X=SCREEN_CENTER_X-280 IconsP2X=SCREEN_CENTER_X+280 +IconsOnCommand= ArrowsX=SCREEN_CENTER_X-232 LabelsX=SCREEN_CENTER_X-150 LabelsOnCommand=zoom,0.5;horizalign,left;ShadowLength,2 -ItemsZoom=0.5 ItemsStartX=SCREEN_CENTER_X-160 ItemsEndX=SCREEN_CENTER_X+280 ItemsGapX=14 ItemsLongRowP1X=SCREEN_CENTER_X-60 ItemsLongRowP2X=SCREEN_CENTER_X+100 ItemsLongRowSharedX=SCREEN_CENTER_X+150 +ItemsOnCommand=zoom,0.5 ColorSelected=0.5,1,0.5,1 ColorNotSelected=1,1,1,1 ColorDisabled=0.5,0.5,0.5,1 @@ -4330,6 +4331,7 @@ ThemeItems=0 [ScreenMiniMenuEditHelp] Fallback=ScreenMiniMenu +ColorDisabled=1,1,1,1 [ScreenMiniMenuMainMenu] Fallback=ScreenMiniMenu diff --git a/stepmania/src/OptionRow.cpp b/stepmania/src/OptionRow.cpp index 894a6e7393..71783aee51 100644 --- a/stepmania/src/OptionRow.cpp +++ b/stepmania/src/OptionRow.cpp @@ -115,13 +115,14 @@ void OptionRow::LoadMetrics( const CString &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"); + ITEMS_ON_COMMAND .Load(m_sType,"ItemsOnCommand"); ICONS_X .Load(m_sType,ICONS_X_NAME,NUM_PLAYERS); + ICONS_ON_COMMAND .Load(m_sType,"IconsOnCommand"); COLOR_SELECTED .Load(m_sType,"ColorSelected"); COLOR_NOT_SELECTED .Load(m_sType,"ColorNotSelected"); COLOR_DISABLED .Load(m_sType,"ColorDisabled"); @@ -133,7 +134,10 @@ void OptionRow::LoadMetrics( const CString &sType ) SHOW_BPM_IN_SPEED_TITLE .Load(m_sType,"ShowBpmInSpeedTitle"); FOREACH_PlayerNumber( p ) + { m_OptionIcons[p].Load( m_sType ); + m_OptionIcons[p].RunCommands( ICONS_ON_COMMAND ); + } } void OptionRow::LoadNormal( const OptionRowDefinition &def, OptionRowHandler *pHand, bool bFirstItemGoesDown ) @@ -263,7 +267,9 @@ void OptionRow::AfterImportOptions( float fY ) // If the items will go off the edge of the screen, then re-init with the "long row" style. { - Font* pFont = FONT->LoadFont( THEME->GetPathF(m_sType,"item") ); + BitmapText bt; + bt.LoadFromFont( THEME->GetPathF(m_sType,"item") ); + bt.RunCommands( ITEMS_ON_COMMAND ); float fX = ITEMS_START_X; @@ -271,7 +277,9 @@ void OptionRow::AfterImportOptions( float fY ) { CString sText = m_RowDef.choices[c]; PrepareItemText( sText ); - fX += ITEMS_ZOOM * pFont->GetLineWidthInSourcePixels( CStringToWstring(sText) ); + bt.SetText( sText ); + + fX += bt.GetZoomedWidth(); if( c != m_RowDef.choices.size()-1 ) fX += ITEMS_GAP_X; @@ -282,9 +290,6 @@ void OptionRow::AfterImportOptions( float fY ) break; } } - - FONT->UnloadFont( pFont ); - pFont = NULL; } // @@ -305,7 +310,7 @@ void OptionRow::AfterImportOptions( float fY ) CString sText = (iChoiceInRowWithFocus==-1) ? "" : m_RowDef.choices[iChoiceInRowWithFocus]; PrepareItemText( sText ); bt->SetText( sText ); - bt->SetZoom( ITEMS_ZOOM ); + bt->RunCommands( ITEMS_ON_COMMAND ); bt->SetShadowLength( 0 ); if( m_RowDef.bOneChoiceForAllPlayers ) @@ -345,7 +350,7 @@ void OptionRow::AfterImportOptions( float fY ) CString sText = m_RowDef.choices[c]; PrepareItemText( sText ); bt->SetText( sText ); - bt->SetZoom( ITEMS_ZOOM ); + bt->RunCommands( ITEMS_ON_COMMAND ); bt->SetShadowLength( 0 ); // set the X position of each item in the line @@ -414,7 +419,7 @@ void OptionRow::LoadExit() CString sText = "Exit"; PrepareItemText( sText ); bt->SetText( sText ); - bt->SetZoom( ITEMS_ZOOM ); + bt->RunCommands( ITEMS_ON_COMMAND ); bt->SetShadowLength( 0 ); bt->SetX( ITEMS_LONG_ROW_SHARED_X ); this->AddChild( bt ); @@ -469,10 +474,6 @@ void OptionRow::PositionUnderlines( PlayerNumber pn ) void OptionRow::PositionIcons() { - /* - ICONS_X - TWEEN_SECONDS - */ if( m_RowType == OptionRow::ROW_EXIT ) return; diff --git a/stepmania/src/OptionRow.h b/stepmania/src/OptionRow.h index aee529c0db..004891bdec 100644 --- a/stepmania/src/OptionRow.h +++ b/stepmania/src/OptionRow.h @@ -192,13 +192,14 @@ protected: ThemeMetric ARROWS_X; ThemeMetric LABELS_X; ThemeMetric LABELS_ON_COMMAND; - ThemeMetric ITEMS_ZOOM; ThemeMetric ITEMS_START_X; ThemeMetric ITEMS_END_X; ThemeMetric ITEMS_GAP_X; ThemeMetric1D ITEMS_LONG_ROW_X; ThemeMetric ITEMS_LONG_ROW_SHARED_X; + ThemeMetric ITEMS_ON_COMMAND; ThemeMetric1D ICONS_X; + ThemeMetric ICONS_ON_COMMAND; ThemeMetric COLOR_SELECTED; ThemeMetric COLOR_NOT_SELECTED; ThemeMetric COLOR_DISABLED;