From 71892143d3cd5c0c6be24e3c889559010e3a7c6d Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Fri, 15 Jul 2005 23:21:23 +0000 Subject: [PATCH] allow hiding group list --- stepmania/src/EditMenu.cpp | 35 ++++++++++++++++++++++++++--------- stepmania/src/EditMenu.h | 4 +++- 2 files changed, 29 insertions(+), 10 deletions(-) diff --git a/stepmania/src/EditMenu.cpp b/stepmania/src/EditMenu.cpp index 1289c32188..b4fe38edef 100644 --- a/stepmania/src/EditMenu.cpp +++ b/stepmania/src/EditMenu.cpp @@ -45,7 +45,10 @@ static CString ROW_Y_NAME( size_t i ) { return ssprintf("Row%dY",int(i+1)); } void EditMenu::GetSongsToShowForGroup( const CString &sGroup, vector &vpSongsOut ) { vpSongsOut.clear(); - SONGMAN->GetSongs( vpSongsOut, sGroup ); + if( !SHOW_GROUPS.GetValue() ) + SONGMAN->GetSongs( vpSongsOut ); + else + SONGMAN->GetSongs( vpSongsOut, sGroup ); switch( EDIT_MODE.GetValue() ) { case EDIT_MODE_PRACTICE: @@ -68,6 +71,9 @@ void EditMenu::GetSongsToShowForGroup( const CString &sGroup, vector &vpS void EditMenu::GetGroupsToShow( vector &vsGroupsOut ) { vsGroupsOut.clear(); + if( !SHOW_GROUPS.GetValue() ) + return; + SONGMAN->GetSongGroupNames( vsGroupsOut ); for( int i = vsGroupsOut.size()-1; i>=0; i-- ) { @@ -93,6 +99,7 @@ void EditMenu::Load( const CString &sType ) { LOG->Trace( "EditMenu::Load" ); + SHOW_GROUPS.Load(sType,"ShowGroups"); ARROWS_X.Load(sType,ARROWS_X_NAME,NUM_ARROWS); ARROWS_ENABLED_COLOR.Load(sType,"ArrowsEnabledColor"); ARROWS_DISABLED_COLOR.Load(sType,"ArrowsDisabledColor"); @@ -114,7 +121,7 @@ void EditMenu::Load( const CString &sType ) this->AddChild( &m_sprArrows[i] ); } - m_SelectedRow = (EditMenuRow)0; + m_SelectedRow = GetFirstRow(); ZERO( m_iSelection ); @@ -135,12 +142,19 @@ void EditMenu::Load( const CString &sType ) this->AddChild( &m_textValue[r] ); } + m_textLabel[ROW_GROUP].SetHidden( !SHOW_GROUPS.GetValue() ); + m_textValue[ROW_GROUP].SetHidden( !SHOW_GROUPS.GetValue() ); + + /* Load low-res banners, if needed. */ BANNERCACHE->Demand(); - m_GroupBanner.SetName( "GroupBanner" ); - ActorUtil::SetXY( m_GroupBanner, sType ); - this->AddChild( &m_GroupBanner ); + if( SHOW_GROUPS.GetValue() ) + { + m_GroupBanner.SetName( "GroupBanner" ); + ActorUtil::SetXY( m_GroupBanner, sType ); + this->AddChild( &m_GroupBanner ); + } m_SongBanner.SetName( "SongBanner" ); ActorUtil::SetXY( m_SongBanner, sType ); @@ -176,7 +190,7 @@ void EditMenu::Load( const CString &sType ) void EditMenu::RefreshAll() { - ChangeToRow( (EditMenuRow)0 ); + ChangeToRow( GetFirstRow() ); OnRowValueChanged( (EditMenuRow)0 ); // Select the current song if any @@ -219,7 +233,7 @@ void EditMenu::RefreshAll() bool EditMenu::CanGoUp() { - return m_SelectedRow != 0; + return m_SelectedRow != GetFirstRow(); } bool EditMenu::CanGoDown() @@ -318,8 +332,11 @@ void EditMenu::OnRowValueChanged( EditMenuRow row ) { case ROW_GROUP: m_textValue[ROW_GROUP].SetText( SONGMAN->ShortenGroupName(GetSelectedGroup()) ); - m_GroupBanner.LoadFromSongGroup( GetSelectedGroup() ); - m_GroupBanner.ScaleToClipped( GROUP_BANNER_WIDTH, GROUP_BANNER_HEIGHT ); + if( SHOW_GROUPS.GetValue() ) + { + m_GroupBanner.LoadFromSongGroup( GetSelectedGroup() ); + m_GroupBanner.ScaleToClipped( GROUP_BANNER_WIDTH, GROUP_BANNER_HEIGHT ); + } m_pSongs.clear(); GetSongsToShowForGroup( GetSelectedGroup(), m_pSongs ); m_iSelection[ROW_SONG] = 0; diff --git a/stepmania/src/EditMenu.h b/stepmania/src/EditMenu.h index 806b375fc2..6c7d3abbd6 100644 --- a/stepmania/src/EditMenu.h +++ b/stepmania/src/EditMenu.h @@ -62,7 +62,7 @@ public: void RefreshAll(); - CString GetSelectedGroup() const { ASSERT(m_iSelection[ROW_GROUP] < (int)m_sGroups.size()); return m_sGroups[m_iSelection[ROW_GROUP]]; } + CString GetSelectedGroup() const { if( !SHOW_GROUPS.GetValue() ) return GROUP_ALL; ASSERT(m_iSelection[ROW_GROUP] < (int)m_sGroups.size()); return m_sGroups[m_iSelection[ROW_GROUP]]; } Song* GetSelectedSong() const { ASSERT(m_iSelection[ROW_SONG] < (int)m_pSongs.size()); return m_pSongs[m_iSelection[ROW_SONG]]; } StepsType GetSelectedStepsType() const { ASSERT(m_iSelection[ROW_STEPS_TYPE] < (int)m_StepsTypes.size()); return m_StepsTypes[m_iSelection[ROW_STEPS_TYPE]]; } Steps* GetSelectedSteps() const { ASSERT(m_iSelection[ROW_STEPS] < (int)m_vpSteps.size()); return m_vpSteps[m_iSelection[ROW_STEPS]].pSteps; } @@ -82,6 +82,7 @@ private: Sprite m_sprArrows[NUM_ARROWS]; EditMenuRow m_SelectedRow; + EditMenuRow GetFirstRow() const { return SHOW_GROUPS.GetValue()? ROW_GROUP:ROW_SONG; } int m_iSelection[NUM_EDIT_MENU_ROWS]; BitmapText m_textLabel[NUM_EDIT_MENU_ROWS]; BitmapText m_textValue[NUM_EDIT_MENU_ROWS]; @@ -113,6 +114,7 @@ private: RandomSample m_soundChangeRow; RandomSample m_soundChangeValue; + ThemeMetric SHOW_GROUPS; ThemeMetric1D ARROWS_X; ThemeMetric ARROWS_ENABLED_COLOR; ThemeMetric ARROWS_DISABLED_COLOR;