feat(ui): add stubbed implementation of CSimpleStatusBar
Some checks are pending
Push / ${{ matrix.build.system_name }} / ${{ matrix.build.build_type }} / ${{ matrix.build.compiler_name }} (map[build_type:Release cc:cl compiler_name:MSVC cxx:cl os:windows-latest system_name:Windows test_path:WhoaTest]) (push) Waiting to run
Push / ${{ matrix.build.system_name }} / ${{ matrix.build.build_type }} / ${{ matrix.build.compiler_name }} (map[build_type:Release cc:clang compiler_name:Clang cxx:clang++ os:macos-latest system_name:macOS test_path:WhoaTest]) (push) Waiting to run
Push / ${{ matrix.build.system_name }} / ${{ matrix.build.build_type }} / ${{ matrix.build.compiler_name }} (map[build_type:Release cc:gcc compiler_name:GCC cxx:g++ os:ubuntu-latest system_name:Linux test_path:WhoaTest]) (push) Waiting to run

This commit is contained in:
fallenoak 2026-01-29 22:41:29 -06:00
parent 1cddac296c
commit 91a4afd976
No known key found for this signature in database
GPG Key ID: 7628F8E61AEA070D
6 changed files with 143 additions and 3 deletions

View File

@ -8,6 +8,7 @@
#include "ui/simple/CSimpleModel.hpp"
#include "ui/simple/CSimpleScrollFrame.hpp"
#include "ui/simple/CSimpleSlider.hpp"
#include "ui/simple/CSimpleStatusBar.hpp"
#include "util/CStatus.hpp"
#include "util/SFile.hpp"
#include <common/XML.hpp>
@ -96,9 +97,9 @@ CSimpleFrame* Create_SimpleHTML(CSimpleFrame* parent) {
}
CSimpleFrame* Create_SimpleStatusBar(CSimpleFrame* parent) {
// TODO
// TODO CDataAllocator
return nullptr;
return STORM_NEW(CSimpleStatusBar(parent));
}
CSimpleFrame* Create_SimpleColorSelect(CSimpleFrame* parent) {

View File

@ -0,0 +1,31 @@
#include "ui/simple/CSimpleStatusBar.hpp"
#include "ui/simple/CSimpleStatusBarScript.hpp"
int32_t CSimpleStatusBar::s_metatable;
int32_t CSimpleStatusBar::s_objectType;
void CSimpleStatusBar::CreateScriptMetaTable() {
auto L = FrameScript_GetContext();
CSimpleStatusBar::s_metatable = FrameScript_Object::CreateScriptMetaTable(L, &CSimpleStatusBar::RegisterScriptMethods);
}
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) {
// TODO
}
int32_t CSimpleStatusBar::GetScriptMetaTable() {
return CSimpleStatusBar::s_metatable;
}

View File

@ -0,0 +1,27 @@
#ifndef UI_SIMPLE_C_SIMPLE_STATUS_BAR_HPP
#define UI_SIMPLE_C_SIMPLE_STATUS_BAR_HPP
#include "ui/simple/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 variables
// TODO
// Virtual member functions
virtual int32_t GetScriptMetaTable();
// Member functions
CSimpleStatusBar(CSimpleFrame* parent);
};
#endif

View File

@ -0,0 +1,70 @@
#include "ui/simple/CSimpleStatusBarScript.hpp"
#include "ui/FrameScript.hpp"
#include "util/Unimplemented.hpp"
namespace {
int32_t CSimpleStatusBar_GetOrientation(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
int32_t CSimpleStatusBar_SetOrientation(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
int32_t CSimpleStatusBar_GetMinMaxValues(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
int32_t CSimpleStatusBar_SetMinMaxValues(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
int32_t CSimpleStatusBar_GetValue(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
int32_t CSimpleStatusBar_SetValue(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
int32_t CSimpleStatusBar_GetStatusBarTexture(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
int32_t CSimpleStatusBar_SetStatusBarTexture(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
int32_t CSimpleStatusBar_GetStatusBarColor(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
int32_t CSimpleStatusBar_SetStatusBarColor(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
int32_t CSimpleStatusBar_GetRotatesTexture(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
int32_t CSimpleStatusBar_SetRotatesTexture(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
}
FrameScript_Method SimpleStatusBarMethods[] = {
{ "GetOrientation", &CSimpleStatusBar_GetOrientation },
{ "SetOrientation", &CSimpleStatusBar_SetOrientation },
{ "GetMinMaxValues", &CSimpleStatusBar_GetMinMaxValues },
{ "SetMinMaxValues", &CSimpleStatusBar_SetMinMaxValues },
{ "GetValue", &CSimpleStatusBar_GetValue },
{ "SetValue", &CSimpleStatusBar_SetValue },
{ "GetStatusBarTexture", &CSimpleStatusBar_GetStatusBarTexture },
{ "SetStatusBarTexture", &CSimpleStatusBar_SetStatusBarTexture },
{ "GetStatusBarColor", &CSimpleStatusBar_GetStatusBarColor },
{ "SetStatusBarColor", &CSimpleStatusBar_SetStatusBarColor },
{ "GetRotatesTexture", &CSimpleStatusBar_GetRotatesTexture },
{ "SetRotatesTexture", &CSimpleStatusBar_SetRotatesTexture },
};

View File

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

View File

@ -12,6 +12,7 @@
#include "ui/simple/CSimpleModelFFX.hpp"
#include "ui/simple/CSimpleScrollFrame.hpp"
#include "ui/simple/CSimpleSlider.hpp"
#include "ui/simple/CSimpleStatusBar.hpp"
#include "ui/simple/CSimpleTexture.hpp"
#include "util/CStatus.hpp"
#include "util/Lua.hpp"
@ -190,9 +191,9 @@ void RegisterSimpleFrameScriptMethods() {
CSimpleModelFFX::CreateScriptMetaTable();
CSimpleScrollFrame::CreateScriptMetaTable();
CSimpleSlider::CreateScriptMetaTable();
CSimpleStatusBar::CreateScriptMetaTable();
// TODO
// CSimpleStatusBar::CreateScriptMetaTable();
// CSimpleColorSelect::CreateScriptMetaTable();
// CSimpleMovieFrame::CreateScriptMetaTable();
}