mirror of https://github.com/PrimeDecomp/prime.git
54 lines
1009 B
C++
54 lines
1009 B
C++
#ifndef _CGUISYS
|
|
#define _CGUISYS
|
|
|
|
#include "types.h"
|
|
|
|
#include "rstl/rc_ptr.hpp"
|
|
#include "rstl/single_ptr.hpp"
|
|
|
|
#include "GuiSys/CGuiTextSupport.hpp"
|
|
|
|
class IFactory;
|
|
class CSimplePool;
|
|
class CTextExecuteBuffer;
|
|
class CTextParser;
|
|
class CGuiWidget;
|
|
|
|
class CGuiSys;
|
|
extern CGuiSys* gGuiSystem;
|
|
|
|
class CGuiSys {
|
|
|
|
public:
|
|
enum EUsageMode {
|
|
kUM_Zero,
|
|
kUM_One,
|
|
kUM_Two,
|
|
};
|
|
|
|
CGuiSys(IFactory*, CSimplePool*, EUsageMode);
|
|
~CGuiSys();
|
|
|
|
static void SetGlobalGuiSys(CGuiSys* ptr) {
|
|
gGuiSystem = ptr;
|
|
spGuiSys = ptr;
|
|
}
|
|
static CGuiWidget* CreateWidgetInGame(uint type, CInputStream& in,
|
|
CGuiFrame* parent);
|
|
|
|
void AddFactories(EUsageMode mode);
|
|
|
|
private:
|
|
IFactory* x0_resFactory;
|
|
CSimplePool* x4_resStore;
|
|
EUsageMode x8_mode;
|
|
rstl::single_ptr< CTextExecuteBuffer > xc_textExecuteBuffer;
|
|
rstl::single_ptr< CTextParser > x10_textParser;
|
|
static CGuiSys* spGuiSys;
|
|
};
|
|
|
|
|
|
CHECK_SIZEOF(CGuiSys, 0x14);
|
|
|
|
#endif // _CGUISYS
|