Have OptionRows subscribe to a Message in order to refresh

This commit is contained in:
Chris Danford
2005-02-24 15:40:05 +00:00
parent 017dd5d048
commit 182db1222f
10 changed files with 148 additions and 168 deletions
+1 -32
View File
@@ -105,9 +105,7 @@ void ScreenOptionsMaster::Init()
ASSERT( OptionRowHandlers.size() == asLineNames.size() );
vector<OptionRowHandler*> vHands( m_OptionRowAlloc.size(), NULL );
InitMenu( im, m_OptionRowAlloc, vHands, bShowUnderlines );
InitMenu( im, m_OptionRowAlloc, OptionRowHandlers, bShowUnderlines );
}
ScreenOptionsMaster::~ScreenOptionsMaster()
@@ -283,35 +281,6 @@ void ScreenOptionsMaster::RefreshIcons()
}
}
void ScreenOptionsMaster::ChangeValueInRow( PlayerNumber pn, int iDelta, bool Repeat )
{
ScreenOptions::ChangeValueInRow( pn, iDelta, Repeat );
int iRow = m_iCurrentRow[pn];
const OptionRowHandler *pHand = OptionRowHandlers[iRow];
FOREACH_CONST( CString, pHand->m_vsRefreshRowNames, sRowToRefreshName )
{
for( unsigned r=0; r<m_Rows.size(); r++ )
{
OptionRow &rowOther = *m_Rows[r];
if( rowOther.GetRowType() == OptionRow::ROW_EXIT )
continue;
OptionRowHandler *pHandOther = OptionRowHandlers[r];
OptionRowDefinition &defOther = m_OptionRowAlloc[r];
if( *sRowToRefreshName == pHandOther->m_sName )
{
pHandOther->Reload( defOther );
ScreenOptions::RefreshRowChoices( r, defOther );
}
}
}
}
void ScreenOptionsMaster::HandleScreenMessage( const ScreenMessage SM )
{
switch( SM )