nudge RebuildWheelItems and RebuildMusicWheelItems together

This commit is contained in:
Glenn Maynard
2005-09-19 09:48:41 +00:00
parent d2616b08d9
commit 075b132f89
2 changed files with 40 additions and 34 deletions
+22 -19
View File
@@ -739,16 +739,19 @@ void MusicWheel::RebuildAllMusicWheelItems()
void MusicWheel::RebuildMusicWheelItems( int iDist )
{
vector<WheelItemData *> &data = m_CurWheelItemData;
vector<MusicWheelItem *> &items = m_MusicWheelItems;
// rewind to first index that will be displayed;
int iFirstVisibleIndex = m_iSelection;
if( m_iSelection > int(m_CurWheelItemData.size()-1) )
if( m_iSelection > int(data.size()-1) )
m_iSelection = 0;
// find the first wheel item shown
iFirstVisibleIndex -= NUM_WHEEL_ITEMS/2;
ASSERT(m_CurWheelItemData.size());
wrap( iFirstVisibleIndex, m_CurWheelItemData.size() );
ASSERT(data.size());
wrap( iFirstVisibleIndex, data.size() );
// iIndex is now the index of the lowest WheelItem to draw
@@ -758,31 +761,31 @@ void MusicWheel::RebuildMusicWheelItems( int iDist )
for( int i=0; i<NUM_WHEEL_ITEMS; i++ )
{
int iIndex = iFirstVisibleIndex + i;
wrap( iIndex, m_CurWheelItemData.size() );
wrap( iIndex, data.size() );
WheelItemData *data = m_CurWheelItemData[iIndex];
MusicWheelItem *display = m_MusicWheelItems[i];
WheelItemData *pData = data[iIndex];
MusicWheelItem *pDisplay = items[i];
bool bExpanded = (data->m_Type == TYPE_SECTION) ? (data->m_sText == m_sExpandedSectionName) : false;
display->LoadFromWheelItemData( data, bExpanded );
bool bExpanded = (pData->m_Type == TYPE_SECTION) ? (pData->m_sText == m_sExpandedSectionName) : false;
pDisplay->LoadFromWheelItemData( pData, bExpanded );
}
}
else
{
// Shift items and refresh only those that have changed.
CircularShift( m_MusicWheelItems, iDist );
CircularShift( items, iDist );
if( iDist > 0 )
{
for( int i=NUM_WHEEL_ITEMS-iDist; i<NUM_WHEEL_ITEMS; i++ )
{
int iIndex = iFirstVisibleIndex + i;
wrap( iIndex, m_CurWheelItemData.size() );
wrap( iIndex, data.size() );
WheelItemData *data = m_CurWheelItemData[iIndex];
MusicWheelItem *display = m_MusicWheelItems[i];
WheelItemData *pData = data[iIndex];
MusicWheelItem *pDisplay = items[i];
bool bExpanded = (data->m_Type == TYPE_SECTION) ? (data->m_sText == m_sExpandedSectionName) : false;
display->LoadFromWheelItemData( data, bExpanded );
bool bExpanded = (pData->m_Type == TYPE_SECTION) ? (pData->m_sText == m_sExpandedSectionName) : false;
pDisplay->LoadFromWheelItemData( pData, bExpanded );
}
}
else if( iDist < 0 )
@@ -790,13 +793,13 @@ void MusicWheel::RebuildMusicWheelItems( int iDist )
for( int i=0; i < -iDist; i++ )
{
int iIndex = iFirstVisibleIndex + i;
wrap( iIndex, m_CurWheelItemData.size() );
wrap( iIndex, data.size() );
WheelItemData *data = m_CurWheelItemData[iIndex];
MusicWheelItem *display = m_MusicWheelItems[i];
WheelItemData *pData = data[iIndex];
MusicWheelItem *pDisplay = items[i];
bool bExpanded = (data->m_Type == TYPE_SECTION) ? (data->m_sText == m_sExpandedSectionName) : false;
display->LoadFromWheelItemData( data, bExpanded );
bool bExpanded = (pData->m_Type == TYPE_SECTION) ? (pData->m_sText == m_sExpandedSectionName) : false;
pDisplay->LoadFromWheelItemData( pData, bExpanded );
}
}
}
+18 -15
View File
@@ -627,16 +627,19 @@ void WheelBase::BuildWheelItemsData( vector<WheelItemBaseData*> &arrayWheelItemD
void WheelBase::RebuildWheelItems( int iDist )
{
vector<WheelItemBaseData *> &data = m_WheelBaseItemsData;
vector<WheelItemBase *> &items = m_WheelBaseItems;
// rewind to first index that will be displayed;
int iFirstVisibleIndex = m_iSelection;
if( m_iSelection > int(m_WheelBaseItemsData.size()-1) )
if( m_iSelection > int(data.size()-1) )
m_iSelection = 0;
// find the first wheel item shown
iFirstVisibleIndex -= NUM_WHEEL_ITEMS/2;
ASSERT(m_WheelBaseItemsData.size());
wrap( iFirstVisibleIndex, m_WheelBaseItemsData.size() );
ASSERT(data.size());
wrap( iFirstVisibleIndex, data.size() );
// iIndex is now the index of the lowest WheelItem to draw
@@ -646,29 +649,29 @@ void WheelBase::RebuildWheelItems( int iDist )
for( int i=0; i<NUM_WHEEL_ITEMS; i++ )
{
int iIndex = iFirstVisibleIndex + i;
wrap( iIndex, m_WheelBaseItemsData.size() );
wrap( iIndex, data.size() );
WheelItemBaseData *data = m_WheelBaseItemsData[iIndex];
WheelItemBase *display = m_WheelBaseItems[i];
WheelItemBaseData *pData = data[iIndex];
WheelItemBase *pDisplay = items[i];
display->LoadFromWheelItemBaseData( data );
pDisplay->LoadFromWheelItemBaseData( pData );
}
}
else
{
// Shift items and refresh only those that have changed.
CircularShift( m_WheelBaseItems, iDist );
CircularShift( items, iDist );
if( iDist > 0 )
{
for( int i=NUM_WHEEL_ITEMS-iDist; i<NUM_WHEEL_ITEMS; i++ )
{
int iIndex = iFirstVisibleIndex + i;
wrap( iIndex, m_WheelBaseItemsData.size() );
wrap( iIndex, data.size() );
WheelItemBaseData *data = m_WheelBaseItemsData[iIndex];
WheelItemBase *display = m_WheelBaseItems[i];
WheelItemBaseData *pData = data[iIndex];
WheelItemBase *pDisplay = items[i];
display->LoadFromWheelItemBaseData( data );
pDisplay->LoadFromWheelItemBaseData( pData );
}
}
else if( iDist < 0 )
@@ -678,10 +681,10 @@ void WheelBase::RebuildWheelItems( int iDist )
int iIndex = iFirstVisibleIndex + i;
wrap( iIndex, m_WheelBaseItemsData.size() );
WheelItemBaseData *data = m_WheelBaseItemsData[iIndex];
WheelItemBase *display = m_WheelBaseItems[i];
WheelItemBaseData *pData = data[iIndex];
WheelItemBase *pDisplay = items[i];
display->LoadFromWheelItemBaseData( data );
pDisplay->LoadFromWheelItemBaseData( pData );
}
}
}