enable the EditMenu to be themed more extensively.
This commit is contained in:
@@ -13,6 +13,19 @@ _____________________________________________________________________________
|
||||
--------
|
||||
* [MusicWheelItem] Gave NormalPart/ColorPart names, so metrics can be used to
|
||||
manipulate them. [freem]
|
||||
* [EditMenu] Converted old non-specific metrics to more specific metrics. [freem]
|
||||
{Metric Changes}
|
||||
SongBannerWidth,SongBannerHeight -> SongBannerOnCommand
|
||||
GroupBannerWidth,GroupBannerHeight -> GroupBannerOnCommand
|
||||
RowLabelsX -> Label#X
|
||||
RowLabelOnCommand -> Label#OnCommand
|
||||
RowValue#X -> Value#X
|
||||
RowValueOnCommand -> Row#OnCommand
|
||||
{Metric Additions}
|
||||
SongBannerChangeCommand/GroupBannerChangeCommand - runs when song/group
|
||||
banner is changed.
|
||||
Label#GainFocus/LoseFocusCommand and Value#GainFocus/LoseFocusCommand - runs
|
||||
when the Label and Value gain/lose focus.
|
||||
|
||||
================================================================================
|
||||
sm-ssc v1.1 | 20101120
|
||||
|
||||
@@ -3336,37 +3336,30 @@ Line4="gamecommand;screen,ScreenOptionsManageCourses;name,Edit Courses"
|
||||
|
||||
[EditMenu]
|
||||
EditMode="EditMode_Full"
|
||||
TextBannerType="TextBannerEditMode"
|
||||
ShowGroups=true
|
||||
|
||||
Arrows1X=SCREEN_CENTER_X-130
|
||||
Arrows2X=SCREEN_CENTER_X+270
|
||||
ArrowsEnabledCommand=diffuse,color("1,1,1,1");shadowlengthy,1;shadowcolor,color("#002740");
|
||||
ArrowsDisabledCommand=diffuse,color("0.45,0.45,0.45,1");shadowlengthy,1;shadowcolor,color("#002740");
|
||||
SongBannerX=SCREEN_CENTER_X+170
|
||||
SongBannerY=SCREEN_CENTER_Y-90
|
||||
SongBannerWidth=128
|
||||
SongBannerHeight=40
|
||||
SongTextBannerX=SCREEN_CENTER_X-64
|
||||
SongTextBannerY=SCREEN_CENTER_Y-90
|
||||
|
||||
GroupBannerX=SCREEN_CENTER_X+170
|
||||
GroupBannerY=SCREEN_CENTER_Y-140
|
||||
GroupBannerWidth=128
|
||||
GroupBannerHeight=40
|
||||
GroupBannerOnCommand=scaletoclipped,128,40
|
||||
|
||||
SongBannerX=SCREEN_CENTER_X+170
|
||||
SongBannerY=SCREEN_CENTER_Y-90
|
||||
SongBannerOnCommand=scaletoclipped,128,40
|
||||
|
||||
TextBannerType="TextBannerEditMode"
|
||||
SongTextBannerX=SCREEN_CENTER_X-64
|
||||
SongTextBannerY=SCREEN_CENTER_Y-90
|
||||
|
||||
StepsDisplayX=SCREEN_CENTER_X+170
|
||||
StepsDisplayY=SCREEN_CENTER_Y-0
|
||||
StepsDisplaySourceX=SCREEN_CENTER_X+170
|
||||
StepsDisplaySourceY=SCREEN_CENTER_Y+80
|
||||
|
||||
RowLabelsX=SCREEN_CENTER_X-250
|
||||
RowLabelOnCommand=shadowlength,1;zoom,0.75
|
||||
RowValue1X=SCREEN_CENTER_X
|
||||
RowValue2X=SCREEN_CENTER_X+60
|
||||
RowValue3X=SCREEN_CENTER_X+60
|
||||
RowValue4X=SCREEN_CENTER_X
|
||||
RowValue5X=SCREEN_CENTER_X+60
|
||||
RowValue6X=SCREEN_CENTER_X
|
||||
RowValue7X=SCREEN_CENTER_X+60
|
||||
RowValueOnCommand=shadowlength,1;zoom,0.75;maxwidth,SCREEN_CENTER_X*0.65
|
||||
Row1Y=SCREEN_CENTER_Y-140
|
||||
Row2Y=SCREEN_CENTER_Y-90
|
||||
Row3Y=SCREEN_CENTER_Y-40
|
||||
@@ -3375,6 +3368,64 @@ Row5Y=SCREEN_CENTER_Y+40
|
||||
Row6Y=SCREEN_CENTER_Y+80
|
||||
Row7Y=SCREEN_CENTER_Y+120
|
||||
|
||||
Label1X=SCREEN_CENTER_X-250
|
||||
Label1Y=THEME:GetMetric("EditMode","Row1Y")
|
||||
Label1OnCommand=shadowlength,1;zoom,0.75
|
||||
Label1OffCommand=
|
||||
Label2X=SCREEN_CENTER_X-250
|
||||
Label2Y=THEME:GetMetric("EditMode","Row2Y")
|
||||
Label2OnCommand=shadowlength,1;zoom,0.75
|
||||
Label2OffCommand=
|
||||
Label3X=SCREEN_CENTER_X-250
|
||||
Label3Y=THEME:GetMetric("EditMode","Row3Y")
|
||||
Label3OnCommand=shadowlength,1;zoom,0.75
|
||||
Label3OffCommand=
|
||||
Label4X=SCREEN_CENTER_X-250
|
||||
Label4Y=THEME:GetMetric("EditMode","Row4Y")
|
||||
Label4OnCommand=shadowlength,1;zoom,0.75
|
||||
Label4OffCommand=
|
||||
Label5X=SCREEN_CENTER_X-250
|
||||
Label5Y=THEME:GetMetric("EditMode","Row5Y")
|
||||
Label5OnCommand=shadowlength,1;zoom,0.75
|
||||
Label5OffCommand=
|
||||
Label6X=SCREEN_CENTER_X-250
|
||||
Label6Y=THEME:GetMetric("EditMode","Row6Y")
|
||||
Label6OnCommand=shadowlength,1;zoom,0.75
|
||||
Label6OffCommand=
|
||||
Label7X=SCREEN_CENTER_X-250
|
||||
Label7Y=THEME:GetMetric("EditMode","Row7Y")
|
||||
Label7OnCommand=shadowlength,1;zoom,0.75
|
||||
Label7OffCommand=
|
||||
|
||||
Value1X=SCREEN_CENTER_X
|
||||
Value1Y=THEME:GetMetric("EditMode","Row1Y")
|
||||
Value1OnCommand=shadowlength,1;zoom,0.75;maxwidth,SCREEN_CENTER_X*0.65
|
||||
Value1OffCommand=
|
||||
Value2X=SCREEN_CENTER_X+60
|
||||
Value2Y=THEME:GetMetric("EditMode","Row2Y")
|
||||
Value2OnCommand=shadowlength,1;zoom,0.75;maxwidth,SCREEN_CENTER_X*0.65
|
||||
Value2OffCommand=
|
||||
Value3X=SCREEN_CENTER_X+60
|
||||
Value3Y=THEME:GetMetric("EditMode","Row3Y")
|
||||
Value3OnCommand=shadowlength,1;zoom,0.75;maxwidth,SCREEN_CENTER_X*0.65
|
||||
Value3OffCommand=
|
||||
Value4X=SCREEN_CENTER_X
|
||||
Value4Y=THEME:GetMetric("EditMode","Row4Y")
|
||||
Value4OnCommand=shadowlength,1;zoom,0.75;maxwidth,SCREEN_CENTER_X*0.65
|
||||
Value4OffCommand=
|
||||
Value5X=SCREEN_CENTER_X+60
|
||||
Value5Y=THEME:GetMetric("EditMode","Row5Y")
|
||||
Value5OnCommand=shadowlength,1;zoom,0.75;maxwidth,SCREEN_CENTER_X*0.65
|
||||
Value5OffCommand=
|
||||
Value6X=SCREEN_CENTER_X
|
||||
Value6Y=THEME:GetMetric("EditMode","Row6Y")
|
||||
Value6OnCommand=shadowlength,1;zoom,0.75;maxwidth,SCREEN_CENTER_X*0.65
|
||||
Value6OffCommand=
|
||||
Value7X=SCREEN_CENTER_X+60
|
||||
Value7Y=THEME:GetMetric("EditMode","Row7Y")
|
||||
Value7OnCommand=shadowlength,1;zoom,0.75;maxwidth,SCREEN_CENTER_X*0.65
|
||||
Value7OffCommand=
|
||||
|
||||
[TextBannerEditMode]
|
||||
Fallback="TextBanner"
|
||||
|
||||
|
||||
+24
-35
@@ -14,7 +14,6 @@
|
||||
#include "UnlockManager.h"
|
||||
#include "SongUtil.h"
|
||||
|
||||
|
||||
static const char *EditMenuRowNames[] = {
|
||||
"Group",
|
||||
"Song",
|
||||
@@ -38,10 +37,8 @@ XToLocalizedString( EditMenuAction );
|
||||
StringToX( EditMenuAction );
|
||||
|
||||
static RString ARROWS_X_NAME( size_t i ) { return ssprintf("Arrows%dX",int(i+1)); }
|
||||
static RString ROW_VALUE_X_NAME( size_t i ) { return ssprintf("RowValue%dX",int(i+1)); }
|
||||
static RString ROW_Y_NAME( size_t i ) { return ssprintf("Row%dY",int(i+1)); }
|
||||
|
||||
|
||||
void EditMenu::StripLockedStepsAndDifficulty( vector<StepsAndDifficulty> &v )
|
||||
{
|
||||
const Song *pSong = GetSelectedSong();
|
||||
@@ -110,14 +107,6 @@ void EditMenu::Load( const RString &sType )
|
||||
ARROWS_X.Load(sType,ARROWS_X_NAME,NUM_ARROWS);
|
||||
ARROWS_ENABLED_COMMAND.Load(sType,"ArrowsEnabledCommand");
|
||||
ARROWS_DISABLED_COMMAND.Load(sType,"ArrowsDisabledCommand");
|
||||
SONG_BANNER_WIDTH.Load(sType,"SongBannerWidth");
|
||||
SONG_BANNER_HEIGHT.Load(sType,"SongBannerHeight");
|
||||
GROUP_BANNER_WIDTH.Load(sType,"GroupBannerWidth");
|
||||
GROUP_BANNER_HEIGHT.Load(sType,"GroupBannerHeight");
|
||||
ROW_LABELS_X.Load(sType,"RowLabelsX");
|
||||
ROW_LABEL_ON_COMMAND.Load(sType,"RowLabelOnCommand");
|
||||
ROW_VALUE_X.Load(sType,ROW_VALUE_X_NAME,NUM_EditMenuRow);
|
||||
ROW_VALUE_ON_COMMAND.Load(sType,"RowValueOnCommand");
|
||||
ROW_Y.Load(sType,ROW_Y_NAME,NUM_EditMenuRow);
|
||||
EDIT_MODE.Load(sType,"EditMode");
|
||||
TEXT_BANNER_TYPE.Load( m_sName, "TextBannerType" );
|
||||
@@ -133,39 +122,39 @@ void EditMenu::Load( const RString &sType )
|
||||
|
||||
ZERO( m_iSelection );
|
||||
|
||||
|
||||
FOREACH_EditMenuRow( r )
|
||||
{
|
||||
m_textLabel[r].SetName(ssprintf("Label%i",r+1));
|
||||
m_textLabel[r].LoadFromFont( THEME->GetPathF(sType,"title") );
|
||||
m_textLabel[r].SetXY( ROW_LABELS_X, ROW_Y.GetValue(r) );
|
||||
m_textLabel[r].SetText( EditMenuRowToLocalizedString(r) );
|
||||
m_textLabel[r].RunCommands( ROW_LABEL_ON_COMMAND );
|
||||
m_textLabel[r].SetHorizAlign( align_left );
|
||||
ActorUtil::LoadAllCommandsAndSetXY( m_textLabel[r], sType );
|
||||
//m_textLabel[r].SetHorizAlign( align_left );
|
||||
this->AddChild( &m_textLabel[r] );
|
||||
|
||||
m_textValue[r].SetName(ssprintf("Value%i",r+1));
|
||||
m_textValue[r].LoadFromFont( THEME->GetPathF(sType,"value") );
|
||||
m_textValue[r].SetXY( ROW_VALUE_X.GetValue(r), ROW_Y.GetValue(r) );
|
||||
m_textValue[r].SetText( "blah" );
|
||||
m_textValue[r].RunCommands( ROW_VALUE_ON_COMMAND );
|
||||
ActorUtil::LoadAllCommandsAndSetXY( m_textValue[r], sType );
|
||||
this->AddChild( &m_textValue[r] );
|
||||
}
|
||||
|
||||
m_textLabel[ROW_GROUP].SetVisible( SHOW_GROUPS.GetValue() );
|
||||
m_textValue[ROW_GROUP].SetVisible( SHOW_GROUPS.GetValue() );
|
||||
|
||||
|
||||
/* Load low-res banners, if needed. */
|
||||
// Load low-res banners, if needed.
|
||||
BANNERCACHE->Demand();
|
||||
|
||||
if( SHOW_GROUPS.GetValue() )
|
||||
{
|
||||
m_GroupBanner.SetName( "GroupBanner" );
|
||||
ActorUtil::SetXY( m_GroupBanner, sType );
|
||||
ActorUtil::LoadAllCommands( m_GroupBanner, sType );
|
||||
this->AddChild( &m_GroupBanner );
|
||||
}
|
||||
|
||||
m_SongBanner.SetName( "SongBanner" );
|
||||
ActorUtil::SetXY( m_SongBanner, sType );
|
||||
ActorUtil::LoadAllCommands( m_SongBanner, sType );
|
||||
this->AddChild( &m_SongBanner );
|
||||
|
||||
m_SongTextBanner.SetName( "SongTextBanner" );
|
||||
@@ -173,12 +162,12 @@ void EditMenu::Load( const RString &sType )
|
||||
ActorUtil::SetXY( m_SongTextBanner, sType );
|
||||
ActorUtil::LoadAllCommands( m_SongTextBanner, sType );
|
||||
this->AddChild( &m_SongTextBanner );
|
||||
|
||||
|
||||
m_StepsDisplay.SetName( "StepsDisplay" );
|
||||
m_StepsDisplay.Load( "StepsDisplayEdit", NULL );
|
||||
ActorUtil::SetXY( m_StepsDisplay, sType );
|
||||
this->AddChild( &m_StepsDisplay );
|
||||
|
||||
|
||||
m_StepsDisplaySource.SetName( "StepsDisplaySource" );
|
||||
m_StepsDisplaySource.Load( "StepsDisplayEdit", NULL );
|
||||
ActorUtil::SetXY( m_StepsDisplaySource, sType );
|
||||
@@ -187,13 +176,10 @@ void EditMenu::Load( const RString &sType )
|
||||
m_soundChangeRow.Load( THEME->GetPathS(sType,"row"), true );
|
||||
m_soundChangeValue.Load( THEME->GetPathS(sType,"value"), true );
|
||||
|
||||
//
|
||||
// fill in data structures
|
||||
//
|
||||
GetGroupsToShow( m_sGroups );
|
||||
m_StepsTypes = CommonMetrics::STEPS_TYPES_TO_SHOW.GetValue();
|
||||
|
||||
|
||||
RefreshAll();
|
||||
}
|
||||
|
||||
@@ -253,7 +239,7 @@ bool EditMenu::CanGoDown()
|
||||
bool EditMenu::CanGoLeft()
|
||||
{
|
||||
if( m_SelectedRow == ROW_SONG || m_SelectedRow == ROW_GROUP )
|
||||
return true; /* wraps */
|
||||
return true; // wraps
|
||||
return m_iSelection[m_SelectedRow] != 0;
|
||||
}
|
||||
|
||||
@@ -261,12 +247,12 @@ int EditMenu::GetRowSize( EditMenuRow er ) const
|
||||
{
|
||||
switch( er )
|
||||
{
|
||||
case ROW_GROUP: return m_sGroups.size();
|
||||
case ROW_GROUP: return m_sGroups.size();
|
||||
case ROW_SONG: return m_pSongs.size();
|
||||
case ROW_STEPS_TYPE: return m_StepsTypes.size();
|
||||
case ROW_STEPS: return m_vpSteps.size();
|
||||
case ROW_STEPS_TYPE: return m_StepsTypes.size();
|
||||
case ROW_STEPS: return m_vpSteps.size();
|
||||
case ROW_SOURCE_STEPS_TYPE: return m_StepsTypes.size();
|
||||
case ROW_SOURCE_STEPS: return m_vpSourceSteps.size();
|
||||
case ROW_SOURCE_STEPS: return m_vpSourceSteps.size();
|
||||
case ROW_ACTION: return m_Actions.size();
|
||||
default: FAIL_M( ssprintf("%i", er) );
|
||||
}
|
||||
@@ -276,7 +262,7 @@ int EditMenu::GetRowSize( EditMenuRow er ) const
|
||||
bool EditMenu::CanGoRight()
|
||||
{
|
||||
if( m_SelectedRow == ROW_SONG || m_SelectedRow == ROW_GROUP )
|
||||
return true; /* wraps */
|
||||
return true; // wraps
|
||||
return m_iSelection[m_SelectedRow] != GetRowSize(m_SelectedRow)-1;
|
||||
}
|
||||
|
||||
@@ -344,9 +330,13 @@ void EditMenu::Right()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void EditMenu::ChangeToRow( EditMenuRow newRow )
|
||||
{
|
||||
m_textLabel[newRow].PlayCommand("GainFocus");
|
||||
m_textValue[newRow].PlayCommand("GainFocus");
|
||||
m_textLabel[m_SelectedRow].PlayCommand("LoseFocus");
|
||||
m_textValue[m_SelectedRow].PlayCommand("LoseFocus");
|
||||
|
||||
m_SelectedRow = newRow;
|
||||
|
||||
for( int i=0; i<2; i++ )
|
||||
@@ -374,7 +364,7 @@ void EditMenu::OnRowValueChanged( EditMenuRow row )
|
||||
if( SHOW_GROUPS.GetValue() )
|
||||
{
|
||||
m_GroupBanner.LoadFromSongGroup( GetSelectedGroup() );
|
||||
m_GroupBanner.ScaleToClipped( GROUP_BANNER_WIDTH, GROUP_BANNER_HEIGHT );
|
||||
m_GroupBanner.PlayCommand("Changed");
|
||||
}
|
||||
m_pSongs.clear();
|
||||
GetSongsToShowForGroup( GetSelectedGroup(), m_pSongs );
|
||||
@@ -383,7 +373,7 @@ void EditMenu::OnRowValueChanged( EditMenuRow row )
|
||||
case ROW_SONG:
|
||||
m_textValue[ROW_SONG].SetText( "" );
|
||||
m_SongBanner.LoadFromSong( GetSelectedSong() );
|
||||
m_SongBanner.ScaleToClipped( SONG_BANNER_WIDTH, SONG_BANNER_HEIGHT );
|
||||
m_SongBanner.PlayCommand("Changed");
|
||||
m_SongTextBanner.SetFromSong( GetSelectedSong() );
|
||||
|
||||
// fall through
|
||||
@@ -461,7 +451,7 @@ void EditMenu::OnRowValueChanged( EditMenuRow row )
|
||||
}
|
||||
}
|
||||
StripLockedStepsAndDifficulty( m_vpSteps );
|
||||
|
||||
|
||||
FOREACH( StepsAndDifficulty, m_vpSteps, s )
|
||||
{
|
||||
if( s->dc == dcOld )
|
||||
@@ -572,7 +562,6 @@ void EditMenu::OnRowValueChanged( EditMenuRow row )
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* (c) 2001-2004 Chris Danford
|
||||
* All rights reserved.
|
||||
|
||||
@@ -97,7 +97,6 @@ private:
|
||||
StepsDisplay m_StepsDisplay;
|
||||
StepsDisplay m_StepsDisplaySource;
|
||||
|
||||
|
||||
struct StepsAndDifficulty
|
||||
{
|
||||
StepsAndDifficulty( Steps *s, Difficulty d ) { pSteps = s; dc = d; }
|
||||
@@ -122,16 +121,6 @@ private:
|
||||
ThemeMetric1D<float> ARROWS_X;
|
||||
ThemeMetric<apActorCommands> ARROWS_ENABLED_COMMAND;
|
||||
ThemeMetric<apActorCommands> ARROWS_DISABLED_COMMAND;
|
||||
// todo: remove these next 4 metrics in favor of commands -aj
|
||||
ThemeMetric<float> SONG_BANNER_WIDTH;
|
||||
ThemeMetric<float> SONG_BANNER_HEIGHT;
|
||||
ThemeMetric<float> GROUP_BANNER_WIDTH;
|
||||
ThemeMetric<float> GROUP_BANNER_HEIGHT;
|
||||
// </todo>
|
||||
ThemeMetric<float> ROW_LABELS_X;
|
||||
ThemeMetric<apActorCommands> ROW_LABEL_ON_COMMAND;
|
||||
ThemeMetric1D<float> ROW_VALUE_X;
|
||||
ThemeMetric<apActorCommands> ROW_VALUE_ON_COMMAND;
|
||||
ThemeMetric1D<float> ROW_Y;
|
||||
public:
|
||||
ThemeMetric<EditMode> EDIT_MODE;
|
||||
|
||||
Reference in New Issue
Block a user