From b7fbb44cd20b4b5f6bae52a9195f7523f5474c9f Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Thu, 18 Dec 2003 00:17:04 +0000 Subject: [PATCH] use DualScrollBar --- stepmania/src/ScreenOptions.cpp | 20 ++++++++++++++++++++ stepmania/src/ScreenOptions.h | 2 ++ 2 files changed, 22 insertions(+) diff --git a/stepmania/src/ScreenOptions.cpp b/stepmania/src/ScreenOptions.cpp index 6a030fb190..9208c7d864 100644 --- a/stepmania/src/ScreenOptions.cpp +++ b/stepmania/src/ScreenOptions.cpp @@ -20,6 +20,7 @@ #include "GameState.h" #include "ThemeManager.h" #include "InputMapper.h" +#include "ActorUtil.h" const float ITEM_X[NUM_PLAYERS] = { 260, 420 }; @@ -39,6 +40,9 @@ const float ITEM_X[NUM_PLAYERS] = { 260, 420 }; #define EXPLANATION_TOGETHER_X THEME->GetMetricF("ScreenOptions","ExplanationTogetherX") #define EXPLANATION_TOGETHER_Y THEME->GetMetricF("ScreenOptions","ExplanationTogetherY") #define EXPLANATION_TOGETHER_ON_COMMAND THEME->GetMetric ("ScreenOptions","ExplanationTogetherOnCommand") +#define SHOW_SCROLL_BAR THEME->GetMetricB("ScreenOptions","ShowScrollBar") +#define SCROLL_BAR_HEIGHT THEME->GetMetricF("ScreenOptions","ScrollBarHeight") +#define SCROLL_BAR_TIME THEME->GetMetricF("ScreenOptions","ScrollBarTime") #define ITEMS_SPACING_Y THEME->GetMetricF("ScreenOptions","ItemsSpacingY") #define EXPLANATION_ZOOM THEME->GetMetricF("ScreenOptions","ExplanationZoom") #define COLOR_SELECTED THEME->GetMetricC("ScreenOptions","ColorSelected") @@ -217,6 +221,19 @@ void ScreenOptions::Init( InputMode im, OptionRow OptionRows[], int iNumOptionLi m_textExplanation[p].SetShadowLength( 0 ); m_framePage.AddChild( &m_textExplanation[p] ); } + + if( SHOW_SCROLL_BAR ) + { + m_ScrollBar.SetName( "DualScrollBar", "ScrollBar" ); + m_ScrollBar.SetBarHeight( SCROLL_BAR_HEIGHT ); + m_ScrollBar.SetBarTime( SCROLL_BAR_TIME ); + for( p=0; pIsHumanPlayer(p) ); + m_ScrollBar.Load(); + UtilSetXY( m_ScrollBar, "ScreenOptions" ); + m_framePage.AddChild( &m_ScrollBar ); + } + switch( m_InputMode ) { case INPUTMODE_INDIVIDUAL: @@ -741,6 +758,9 @@ void ScreenOptions::OnChange( PlayerNumber pn ) PositionIcons(); UpdateEnabledDisabled(); + if( SHOW_SCROLL_BAR ) + m_ScrollBar.SetPercentage( pn, m_iCurrentRow[pn] / float(m_iNumOptionRows) ); + /* Update all players, since changing one player can move both cursors. */ for( int p=0; p