mirror of
https://github.com/thunderbrewhq/thunderbrew
synced 2025-12-12 11:12:29 +00:00
chore: initial commit
This commit is contained in:
commit
70b00c5c38
965 changed files with 264882 additions and 0 deletions
77
src/ui/CSimpleButton.hpp
Normal file
77
src/ui/CSimpleButton.hpp
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
#ifndef UI_C_SIMPLE_BUTTON_HPP
|
||||
#define UI_C_SIMPLE_BUTTON_HPP
|
||||
|
||||
#include "ui/CSimpleFrame.hpp"
|
||||
#include <tempest/Vector.hpp>
|
||||
|
||||
class CSimpleFont;
|
||||
class CSimpleFontString;
|
||||
class CSimpleTexture;
|
||||
|
||||
enum CSimpleButtonState {
|
||||
BUTTONSTATE_DISABLED = 0x0,
|
||||
BUTTONSTATE_NORMAL = 0x1,
|
||||
BUTTONSTATE_PUSHED = 0x2,
|
||||
NUM_BUTTONSTATES = 0x3,
|
||||
};
|
||||
|
||||
class CSimpleButton : public CSimpleFrame {
|
||||
public:
|
||||
// Static variables
|
||||
static int32_t s_metatable;
|
||||
static int32_t s_objectType;
|
||||
|
||||
// Static functions
|
||||
static void CreateScriptMetaTable(void);
|
||||
static int32_t GetObjectType(void);
|
||||
static void RegisterScriptMethods(lua_State*);
|
||||
|
||||
// Member variables
|
||||
uint32_t m_doubleClickTime = 0;
|
||||
uint64_t m_clickAction = 0x0000000080000000;
|
||||
CSimpleButtonState m_state = BUTTONSTATE_DISABLED;
|
||||
int32_t m_stateLocked = 0;
|
||||
CSimpleFontString* m_text = nullptr;
|
||||
CSimpleFont* m_normalFont = nullptr;
|
||||
CSimpleFont* m_highlightFont = nullptr;
|
||||
CSimpleFont* m_disabledFont = nullptr;
|
||||
C2Vector m_pressedOffset;
|
||||
CSimpleTexture* m_textures[NUM_BUTTONSTATES];
|
||||
CSimpleTexture* m_activeTexture = nullptr;
|
||||
CSimpleTexture* m_highlightTexture = nullptr;
|
||||
ScriptIx m_preClick;
|
||||
ScriptIx m_onClick;
|
||||
ScriptIx m_postClick;
|
||||
ScriptIx m_onDoubleClick;
|
||||
|
||||
// Virtual member functions
|
||||
virtual ScriptIx* GetScriptByName(const char*, ScriptData&);
|
||||
virtual bool IsA(int32_t);
|
||||
virtual int32_t GetScriptMetaTable(void);
|
||||
virtual void LoadXML(XMLNode*, CStatus*);
|
||||
virtual void OnLayerHide(void);
|
||||
virtual void OnLayerCursorEnter(int32_t);
|
||||
virtual void OnLayerCursorExit(int32_t, int32_t);
|
||||
virtual int32_t OnLayerMouseDown(const CMouseEvent&, const char*);
|
||||
virtual int32_t OnLayerMouseUp(const CMouseEvent&, const char*);
|
||||
virtual void LockHighlight(int32_t);
|
||||
virtual void Enable(int32_t);
|
||||
virtual void OnClick(const char*, int32_t);
|
||||
virtual void OnDoubleClick(const char*);
|
||||
virtual void SetButtonState(CSimpleButtonState, int32_t);
|
||||
|
||||
// Member functions
|
||||
CSimpleButton(CSimpleFrame*);
|
||||
void RunOnClickScript(const char*, int32_t);
|
||||
void SetClickAction(uint64_t action);
|
||||
void SetFontString(CSimpleFontString*);
|
||||
void SetHighlight(CSimpleTexture*, EGxBlend);
|
||||
int32_t SetHighlight(const char* texFile, EGxBlend blendMode);
|
||||
void SetPressedOffset(C2Vector&);
|
||||
void SetStateTexture(CSimpleButtonState, CSimpleTexture*);
|
||||
int32_t SetStateTexture(CSimpleButtonState state, const char* texFile);
|
||||
void SetText(const char*);
|
||||
void UpdateTextState(CSimpleButtonState);
|
||||
};
|
||||
|
||||
#endif
|
||||
Loading…
Add table
Add a link
Reference in a new issue