61 lines
1.7 KiB
C++
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 ) );
|
|
}
|