Files
itgmania212121/stepmania/src/DualScrollBar.cpp
T
2003-12-18 00:15:57 +00:00

61 lines
1.7 KiB
C++

#include "global.h"
#include "DualScrollBar.h"
#include "ThemeManager.h"
DualScrollBar::DualScrollBar()
{
m_fBarHeight = 100;
m_fBarTime = 1;
}
void DualScrollBar::Load()
{
int pn;
for( pn=0; pn < NUM_PLAYERS; ++pn )
{
m_sprScrollThumbUnderHalf[pn].SetName( ssprintf("ThumbP%i", pn+1) );
m_sprScrollThumbUnderHalf[pn].Load( THEME->GetPathToG( ssprintf("%s thumb p%i", m_sName.c_str(), pn+1) ) );
this->AddChild( &m_sprScrollThumbUnderHalf[pn] );
}
for( pn=0; pn < NUM_PLAYERS; ++pn )
{
m_sprScrollThumbOverHalf[pn].SetName( ssprintf("ThumbP%i", pn+1) );
m_sprScrollThumbOverHalf[pn].Load( THEME->GetPathToG( ssprintf("%s thumb p%i", m_sName.c_str(), pn+1) ) );
this->AddChild( &m_sprScrollThumbOverHalf[pn] );
}
m_sprScrollThumbUnderHalf[0].SetCropLeft( .5f );
m_sprScrollThumbUnderHalf[1].SetCropRight( .5f );
m_sprScrollThumbOverHalf[0].SetCropRight( .5f );
m_sprScrollThumbOverHalf[1].SetCropLeft( .5f );
for( pn=0; pn < NUM_PLAYERS; ++pn )
SetPercentage( (PlayerNumber) pn, 0 );
FinishTweening();
}
void DualScrollBar::EnablePlayer( PlayerNumber pn, bool on )
{
m_sprScrollThumbUnderHalf[pn].SetHidden( !on );
m_sprScrollThumbOverHalf[pn].SetHidden( !on );
}
void DualScrollBar::SetPercentage( PlayerNumber pn, float fPercent )
{
const float bottom = m_fBarHeight/2 - m_sprScrollThumbUnderHalf[pn].GetZoomedHeight()/2;
const float top = -bottom;
/* Position both thumbs. */
m_sprScrollThumbUnderHalf[pn].StopTweening();
m_sprScrollThumbUnderHalf[pn].BeginTweening( m_fBarTime );
m_sprScrollThumbUnderHalf[pn].SetY( SCALE( fPercent, 0, 1, top, bottom ) );
m_sprScrollThumbOverHalf[pn].StopTweening();
m_sprScrollThumbOverHalf[pn].BeginTweening( m_fBarTime );
m_sprScrollThumbOverHalf[pn].SetY( SCALE( fPercent, 0, 1, top, bottom ) );
}