remove Screen.h dep on ScreenManager.h. (this looked more useful before pulling in the higher-level includes, but still seems like the right thing to do)
This commit is contained in:
@@ -9,14 +9,17 @@
|
||||
#include "GameInput.h"
|
||||
#include "MenuInput.h"
|
||||
#include "StyleInput.h"
|
||||
#include "ScreenManager.h"
|
||||
#include "ThemeMetric.h"
|
||||
|
||||
class Screen;
|
||||
typedef Screen* (*CreateScreenFn)(const CString& sClassName);
|
||||
void RegisterScreenClass( const CString& sClassName, CreateScreenFn pfn );
|
||||
|
||||
// Each Screen class should have a REGISTER_SCREEN_CLASS in its CPP file.
|
||||
#define REGISTER_SCREEN_CLASS( className ) \
|
||||
static Screen* Create##className( const CString &sName ) { Screen *pRet = new className( sName ); pRet->Init(); return pRet; } \
|
||||
struct Register##className { \
|
||||
Register##className() { SCREENMAN->Register(#className,Create##className); } \
|
||||
Register##className() { RegisterScreenClass( #className,Create##className); } \
|
||||
}; \
|
||||
static Register##className register_##className;
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ static Preference<bool> g_bConcurrentLoading( "ConcurrentLoading", false );
|
||||
// Screen registration
|
||||
static map<CString,CreateScreenFn> *g_pmapRegistrees = NULL;
|
||||
|
||||
void ScreenManager::Register( const CString& sClassName, CreateScreenFn pfn )
|
||||
void RegisterScreenClass( const CString& sClassName, CreateScreenFn pfn )
|
||||
{
|
||||
if( g_pmapRegistrees == NULL )
|
||||
g_pmapRegistrees = new map<CString,CreateScreenFn>;
|
||||
|
||||
@@ -23,10 +23,6 @@ typedef Screen* (*CreateScreenFn)(const CString& sClassName);
|
||||
class ScreenManager
|
||||
{
|
||||
public:
|
||||
// Every screen should register its class at program initialization.
|
||||
static void Register( const CString& sClassName, CreateScreenFn pfn );
|
||||
|
||||
|
||||
ScreenManager();
|
||||
~ScreenManager();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user