ScreenManager.h
Go to the documentation of this file.00001
00002
00003
#ifndef ScreenManager_H
00004
#define ScreenManager_H
00005
00006
#include "RageInputDevice.h"
00007
#include "ScreenMessage.h"
00008
#include "InputFilter.h"
00009
#include "GameInput.h"
00010
#include "MenuInput.h"
00011
#include "StyleInput.h"
00012
#include "BitmapText.h"
00013
#include "RageSound.h"
00014
00015
class Screen;
00016
struct Menu;
00017
class ScreenSystemLayer;
00018
class BGAnimation;
00019
00020
00021 typedef Screen* (*CreateScreenFn)(
const CString&);
00022
00023 class ScreenManager
00024 {
00025
public:
00026
00027
static void Register(
const CString& sClassName,
CreateScreenFn pfn );
00028
00029
00030
ScreenManager();
00031
~ScreenManager();
00032
00033
00034
void Update(
float fDeltaTime );
00035
void Draw();
00036
void Input(
const DeviceInput& DeviceI,
const InputEventType type,
const GameInput &GameI,
const MenuInput &MenuI,
const StyleInput &StyleI );
00037
00038
void PrepareScreen(
const CString &sScreenName );
00039
void DeletePreparedScreens();
00040
00041
void SetNewScreen(
const CString &sName );
00042
void AddNewScreenToTop(
const CString &sName,
ScreenMessage messageSendOnPop );
00043
void Prompt(
ScreenMessage SM_SendWhenDone,
const CString &sText,
bool bYesNo =
false,
bool bDefaultAnswer =
false,
void(*OnYes)(
void*) = NULL,
void(*OnNo)(
void*) = NULL,
void* pCallbackData = NULL );
00044
void Password(
ScreenMessage SM_SendWhenDone,
const CString &sText,
void(*OnOK)(
CString sPassword) = NULL,
void(*OnCanel)() = NULL );
00045
void TextEntry(
ScreenMessage SM_SendWhenDone,
CString sQuestion,
CString sInitialAnswer,
void(*OnOK)(
CString sAnswer) = NULL,
void(*OnCanel)() = NULL );
00046
void MiniMenu(
Menu* pDef,
ScreenMessage SM_SendOnOK,
ScreenMessage SM_SendOnCancel =
SM_None );
00047
void PopTopScreen(
ScreenMessage SM =
SM_None );
00048
void SystemMessage(
const CString &sMessage );
00049
void SystemMessageNoAnimate(
const CString &sMessage );
00050
00051
void PostMessageToTopScreen(
ScreenMessage SM,
float fDelay );
00052
void SendMessageToTopScreen(
ScreenMessage SM );
00053
00054
void ReloadCreditsText();
00055
void RefreshCreditsMessages();
00056
void ThemeChanged();
00057
00058
Screen *
GetTopScreen();
00059
00060
public:
00061
00062
00063
00064 BGAnimation *
m_pSharedBGA;
00065
void PlaySharedBackgroundOffCommand();
00066
private:
00067 vector<Screen*>
m_ScreenStack;
00068 ScreenSystemLayer *
m_SystemLayer;
00069
00070 CString m_sLastLoadedBackgroundPath;
00071 CString m_sDelayedScreen;
00072 ScreenMessage m_MessageSendOnPop;
00073 vector<Screen*>
m_vPreparedScreens;
00074 vector<Screen*>
m_vScreensToDelete;
00075
00076
Screen*
MakeNewScreen(
const CString &sName );
00077
void SetFromNewScreen(
Screen *pNewScreen,
bool Stack );
00078
void ClearScreenStack();
00079
void EmptyDeleteQueue();
00080
void LoadDelayedScreen();
00081
00082
00083
00084
public:
00085
void PlayStartSound();
00086
void PlayCoinSound();
00087
void PlayInvalidSound();
00088
void PlayScreenshotSound();
00089
void PlayBackSound();
00090
00091
private:
00092 RageSound m_soundStart;
00093 RageSound m_soundCoin;
00094 RageSound m_soundInvalid;
00095 RageSound m_soundScreenshot;
00096 RageSound m_soundBack;
00097 };
00098
00099
00100 extern ScreenManager*
SCREENMAN;
00101
00102
#endif
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
Generated on Thu Jan 27 20:57:31 2005 for StepMania by
1.3.7