mirror of
https://github.com/PrimeDecomp/prime.git
synced 2025-12-10 21:47:40 +00:00
@@ -2,25 +2,86 @@
|
||||
#define _CGUITEXTSUPPORT
|
||||
|
||||
#include "rstl/string.hpp"
|
||||
#include "rstl/vector.hpp"
|
||||
|
||||
class CColor;
|
||||
class CGuiFrame;
|
||||
class CTextExecuteBuffer;
|
||||
class CTextParser;
|
||||
|
||||
enum EJustification {
|
||||
kJ_Left = 0,
|
||||
kJ_Center,
|
||||
kJ_Right,
|
||||
kJ_Full,
|
||||
kJ_NLeft,
|
||||
kJ_NCenter,
|
||||
kJ_NRight,
|
||||
kJ_LeftMono,
|
||||
kJ_CenterMono,
|
||||
kJ_RightMono,
|
||||
};
|
||||
|
||||
enum EVerticalJustification {
|
||||
kVJ_Top = 0,
|
||||
kVJ_Center,
|
||||
kVJ_Bottom,
|
||||
kVJ_Full,
|
||||
kVJ_NTop,
|
||||
kVJ_NCenter,
|
||||
kVJ_NBottom,
|
||||
kVJ_TopMono,
|
||||
kVJ_CenterMono,
|
||||
kVJ_RightMono,
|
||||
};
|
||||
|
||||
enum ETextDirection {
|
||||
kTD_Horizontal,
|
||||
kTD_Vertical,
|
||||
};
|
||||
|
||||
class CGuiTextProperties {
|
||||
friend class CGuiTextSupport;
|
||||
|
||||
public:
|
||||
CGuiTextProperties(bool wordWrap, bool horizontal, EJustification justification,
|
||||
EVerticalJustification vertJustification,
|
||||
const rstl::vector< rstl::pair< CAssetId, CAssetId > >* txtrMap = nullptr)
|
||||
: x0_wordWrap(wordWrap)
|
||||
, x1_horizontal(horizontal)
|
||||
, x4_justification(justification)
|
||||
, x8_vertJustification(vertJustification)
|
||||
, xc_txtrMap(txtrMap) {}
|
||||
|
||||
private:
|
||||
bool x0_wordWrap;
|
||||
bool x1_horizontal;
|
||||
EJustification x4_justification;
|
||||
EVerticalJustification x8_vertJustification;
|
||||
const rstl::vector< rstl::pair< CAssetId, CAssetId > >* xc_txtrMap;
|
||||
};
|
||||
|
||||
class CGuiTextSupport {
|
||||
static CTextExecuteBuffer* gpExecBuf;
|
||||
static CTextParser* gpTextParser;
|
||||
|
||||
public:
|
||||
CGuiTextSupport(CAssetId fontId, const CGuiTextProperties& props, const CColor& fontCol,
|
||||
const CColor& outlineCol, const CColor& geomCol, int extX, int extY,
|
||||
CSimplePool* store, int /*CGuiWidget::EGuiModelDrawFlags*/ drawFlags);
|
||||
|
||||
void SetText(const rstl::string&, bool multipage = false);
|
||||
void SetOutlineColor(const CColor& col);
|
||||
void SetFontColor(const CColor& col);
|
||||
void Render() const;
|
||||
|
||||
static void Initialize(CTextExecuteBuffer* buf, CTextParser* parser) {
|
||||
gpExecBuf = buf;
|
||||
gpTextParser = parser;
|
||||
}
|
||||
|
||||
private:
|
||||
char x0_pad[0x30c];
|
||||
};
|
||||
|
||||
#endif // _CGUITEXTSUPPORT
|
||||
|
||||
Reference in New Issue
Block a user