feat(ui): add CSimpleStatusBar skeleton

This commit is contained in:
VDm 2025-08-10 21:48:58 +04:00
parent 9d82727c9b
commit 568afa1c1b
6 changed files with 147 additions and 2 deletions

View File

@ -0,0 +1,39 @@
#include "ui/CSimpleStatusBar.hpp"
#include "ui/CSimpleStatusBarScript.hpp"
int32_t CSimpleStatusBar::s_metatable = 0;
int32_t CSimpleStatusBar::s_objectType = 0;
void CSimpleStatusBar::CreateScriptMetaTable() {
lua_State* L = FrameScript_GetContext();
int32_t ref = FrameScript_Object::CreateScriptMetaTable(L, &CSimpleStatusBar::RegisterScriptMethods);
CSimpleStatusBar::s_metatable = ref;
}
int32_t CSimpleStatusBar::GetObjectType() {
if (!CSimpleStatusBar::s_objectType) {
CSimpleStatusBar::s_objectType = ++FrameScript_Object::s_objectTypes;
}
return CSimpleStatusBar::s_objectType;
}
void CSimpleStatusBar::RegisterScriptMethods(lua_State* L) {
CSimpleFrame::RegisterScriptMethods(L);
FrameScript_Object::FillScriptMethodTable(L, SimpleStatusBarMethods, NUM_SIMPLE_STATUS_BAR_SCRIPT_METHODS);
}
CSimpleStatusBar::CSimpleStatusBar(CSimpleFrame* parent)
: CSimpleFrame(parent) {
}
bool CSimpleStatusBar::IsA(int32_t type) {
return type == CSimpleStatusBar::s_objectType
|| type == CSimpleFrame::s_objectType
|| type == CScriptRegion::s_objectType
|| type == CScriptObject::s_objectType;
}
int32_t CSimpleStatusBar::GetScriptMetaTable() {
return CSimpleStatusBar::s_metatable;
}

View File

@ -0,0 +1,25 @@
#ifndef UI_C_SIMPLE_STATUS_BAR_HPP
#define UI_C_SIMPLE_STATUS_BAR_HPP
#include "ui/CSimpleFrame.hpp"
class CSimpleStatusBar : public CSimpleFrame {
public:
// Static variables
static int32_t s_metatable;
static int32_t s_objectType;
// Static functions
static void CreateScriptMetaTable();
static int32_t GetObjectType();
static void RegisterScriptMethods(lua_State* L);
// Member functions
CSimpleStatusBar(CSimpleFrame* parent);
// Virtual member functions
virtual bool IsA(int32_t type);
virtual int32_t GetScriptMetaTable();
};
#endif

View File

@ -0,0 +1,68 @@
#include "ui/CSimpleStatusBarScript.hpp"
#include "ui/CSimpleStatusBar.hpp"
#include "util/Lua.hpp"
#include "util/Unimplemented.hpp"
static int32_t Script_GetOrientation(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_SetOrientation(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_GetMinMaxValues(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_SetMinMaxValues(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_GetValue(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_SetValue(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_GetStatusBarTexture(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_SetStatusBarTexture(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_GetStatusBarColor(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_SetStatusBarColor(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_GetRotatesTexture(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_SetRotatesTexture(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
FrameScript_Method SimpleStatusBarMethods[NUM_SIMPLE_STATUS_BAR_SCRIPT_METHODS] = {
{ "GetOrientation", &Script_GetOrientation },
{ "SetOrientation", &Script_SetOrientation },
{ "GetMinMaxValues", &Script_GetMinMaxValues },
{ "SetMinMaxValues", &Script_SetMinMaxValues },
{ "GetValue", &Script_GetValue },
{ "SetValue", &Script_SetValue },
{ "GetStatusBarTexture", &Script_GetStatusBarTexture },
{ "SetStatusBarTexture", &Script_SetStatusBarTexture },
{ "GetStatusBarColor", &Script_GetStatusBarColor },
{ "SetStatusBarColor", &Script_SetStatusBarColor },
{ "GetRotatesTexture", &Script_GetRotatesTexture },
{ "SetRotatesTexture", &Script_SetRotatesTexture }
};

View File

@ -0,0 +1,10 @@
#ifndef UI_C_SIMPLE_STATUS_BAR_SCRIPT_HPP
#define UI_C_SIMPLE_STATUS_BAR_SCRIPT_HPP
#include "ui/FrameScript.hpp"
#define NUM_SIMPLE_STATUS_BAR_SCRIPT_METHODS 12
extern FrameScript_Method SimpleStatusBarMethods[NUM_SIMPLE_STATUS_BAR_SCRIPT_METHODS];
#endif

View File

@ -10,6 +10,7 @@
#include "ui/CSimpleScrollFrame.hpp"
#include "ui/CSimpleMessageScrollFrame.hpp"
#include "ui/CSimpleSlider.hpp"
#include "ui/CSimpleStatusBar.hpp"
#include "util/CStatus.hpp"
#include "util/SFile.hpp"
#include <cstdlib>
@ -101,7 +102,8 @@ CSimpleFrame* Create_SimpleHTML(CSimpleFrame* parent) {
CSimpleFrame* Create_SimpleStatusBar(CSimpleFrame* parent) {
// TODO
return nullptr;
auto m = SMemAlloc(sizeof(CSimpleStatusBar), __FILE__, __LINE__, 0x0);
return new (m) CSimpleStatusBar(parent);
}
CSimpleFrame* Create_SimpleColorSelect(CSimpleFrame* parent) {

View File

@ -13,6 +13,7 @@
#include "ui/CSimpleSlider.hpp"
#include "ui/CSimpleTexture.hpp"
#include "ui/CSimpleMessageScrollFrame.hpp"
#include "ui/CSimpleStatusBar.hpp"
#include "ui/FrameScript.hpp"
void CharacterCreateRegisterScriptFunctions() {
@ -88,7 +89,7 @@ void RegisterSimpleFrameScriptMethods() {
CSimpleSlider::CreateScriptMetaTable();
// TODO
// CSimpleStatusBar::CreateScriptMetaTable();
CSimpleStatusBar::CreateScriptMetaTable();
// CSimpleColorSelect::CreateScriptMetaTable();
CSimpleMovieFrame::CreateScriptMetaTable();
}