Add ScreenOptionsMaster (partially functional)

This commit is contained in:
Glenn Maynard
2003-09-28 02:59:02 +00:00
parent c87b76e958
commit 2ca689481e
5 changed files with 583 additions and 0 deletions
+60
View File
@@ -0,0 +1,60 @@
#ifndef SCREEN_OPTIONS_MASTER_H
#define SCREEN_OPTIONS_MASTER_H
#include "ScreenOptions.h"
#include "ModeChoice.h"
struct ConfOption;
class ScreenOptionsMaster: public ScreenOptions
{
public:
ScreenOptionsMaster( CString sName );
virtual ~ScreenOptionsMaster();
private:
enum OptionRowType
{
ROW_LIST, /* list of custom settings */
ROW_STEP, /* list of steps for the current song or course */
ROW_CHARACTER, /* list of characters */
ROW_CONFIG,
NUM_OPTION_ROW_TYPES
};
struct OptionRowHandler
{
OptionRowType type;
/* ROW_LIST: */
vector<ModeChoice> ListEntries;
ModeChoice Default;
/* ROW_CONFIG: */
const ConfOption *opt;
};
CString m_NextScreen;
vector<OptionRowHandler> OptionRowHandlers;
OptionRow *m_OptionRowAlloc;
CString ConvertParamToThemeDifficulty( const CString &in ) const;
void ExportOption( const OptionRow &row, const OptionRowHandler &hand, int pn, int sel );
int ImportOption( const OptionRow &row, const OptionRowHandler &hand, int pn );
void SetList( OptionRow &row, OptionRowHandler &hand, CString param, CString &TitleOut );
void SetStep( OptionRow &row, OptionRowHandler &hand );
void SetConf( OptionRow &row, OptionRowHandler &hand, CString param, CString &TitleOut );
void SetCharacter( OptionRow &row, OptionRowHandler &hand );
protected:
virtual void ImportOptions();
virtual void ExportOptions();
virtual void GoToNextState();
virtual void GoToPrevState();
};
#endif