feat(ui): handle CSimpleButton_GetButtonState script function

This commit is contained in:
fallenoak 2023-02-18 15:17:46 -06:00
parent a3b285497a
commit dd322572c7
No known key found for this signature in database
GPG Key ID: 7628F8E61AEA070D
3 changed files with 23 additions and 1 deletions

View File

@ -83,6 +83,10 @@ void CSimpleButton::Enable(int32_t enabled) {
}
}
CSimpleButtonState CSimpleButton::GetButtonState() {
return this->m_state;
}
FrameScript_Object::ScriptIx* CSimpleButton::GetScriptByName(const char* name, ScriptData& data) {
auto parentScript = CSimpleFrame::GetScriptByName(name, data);

View File

@ -62,6 +62,7 @@ class CSimpleButton : public CSimpleFrame {
// Member functions
CSimpleButton(CSimpleFrame* parent);
CSimpleButtonState GetButtonState();
void RunOnClickScript(const char* btn, int32_t down);
void SetClickAction(uint64_t action);
void SetFontString(CSimpleFontString* text);

View File

@ -75,7 +75,24 @@ int32_t CSimpleButton_IsEnabled(lua_State* L) {
}
int32_t CSimpleButton_GetButtonState(lua_State* L) {
WHOA_UNIMPLEMENTED();
auto type = CSimpleButton::GetObjectType();
auto button = static_cast<CSimpleButton*>(FrameScript_GetObjectThis(L, type));
auto buttonState = button->GetButtonState();
if (buttonState == BUTTONSTATE_DISABLED) {
lua_pushstring(L, "DISABLED");
return 1;
} else if (buttonState == BUTTONSTATE_PUSHED) {
lua_pushstring(L, "PUSHED");
return 1;
} else if (buttonState == BUTTONSTATE_NORMAL) {
lua_pushstring(L, "NORMAL");
return 1;
}
lua_pushstring(L, "UNKNOWN");
return 1;
}
int32_t CSimpleButton_SetButtonState(lua_State* L) {