Compare commits

...

3 Commits

Author SHA1 Message Date
fallenoak
91a4afd976
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
2026-01-29 22:41:29 -06:00
fallenoak
1cddac296c
chore(ui): use boolean for unique flag in FrameXML_RegisterFactory calls 2026-01-29 22:19:08 -06:00
fallenoak
df177a40b0
chore(ui): use anonymous namespace consistently for script bindings 2026-01-29 22:16:25 -06:00
9 changed files with 165 additions and 16 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) {
@ -541,19 +542,19 @@ int32_t FrameXML_RegisterFactory(const char* type, CSimpleFrame* (*factory)(CSim
}
void FrameXML_RegisterDefault() {
FrameXML_RegisterFactory("Button", &Create_SimpleButton, 0);
FrameXML_RegisterFactory("CheckButton", &Create_SimpleCheckButton, 0);
FrameXML_RegisterFactory("EditBox", &Create_SimpleEditBox, 0);
FrameXML_RegisterFactory("Frame", &Create_SimpleFrame, 0);
FrameXML_RegisterFactory("MessageFrame", &Create_SimpleMessageFrame, 0);
FrameXML_RegisterFactory("Model", &Create_SimpleModel, 0);
FrameXML_RegisterFactory("ScrollFrame", &Create_SimpleScrollFrame, 0);
FrameXML_RegisterFactory("ScrollingMessageFrame", &Create_SimpleScrollingMessageFrame, 0);
FrameXML_RegisterFactory("Slider", &Create_SimpleSlider, 0);
FrameXML_RegisterFactory("SimpleHTML", &Create_SimpleHTML, 0);
FrameXML_RegisterFactory("StatusBar", &Create_SimpleStatusBar, 0);
FrameXML_RegisterFactory("ColorSelect", &Create_SimpleColorSelect, 0);
FrameXML_RegisterFactory("MovieFrame", &Create_SimpleMovieFrame, 0);
FrameXML_RegisterFactory("Button", &Create_SimpleButton, false);
FrameXML_RegisterFactory("CheckButton", &Create_SimpleCheckButton, false);
FrameXML_RegisterFactory("EditBox", &Create_SimpleEditBox, false);
FrameXML_RegisterFactory("Frame", &Create_SimpleFrame, false);
FrameXML_RegisterFactory("MessageFrame", &Create_SimpleMessageFrame, false);
FrameXML_RegisterFactory("Model", &Create_SimpleModel, false);
FrameXML_RegisterFactory("ScrollFrame", &Create_SimpleScrollFrame, false);
FrameXML_RegisterFactory("ScrollingMessageFrame", &Create_SimpleScrollingMessageFrame, false);
FrameXML_RegisterFactory("Slider", &Create_SimpleSlider, false);
FrameXML_RegisterFactory("SimpleHTML", &Create_SimpleHTML, false);
FrameXML_RegisterFactory("StatusBar", &Create_SimpleStatusBar, false);
FrameXML_RegisterFactory("ColorSelect", &Create_SimpleColorSelect, false);
FrameXML_RegisterFactory("MovieFrame", &Create_SimpleMovieFrame, false);
}
void FrameXML_ReleaseHashNode(const char* name) {

View File

@ -2,6 +2,8 @@
#include "ui/FrameScript.hpp"
#include "util/Unimplemented.hpp"
namespace {
int32_t Script_GetGMTicket(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
@ -62,6 +64,8 @@ int32_t Script_RegisterStaticConstants(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
}
static FrameScript_Method s_ScriptFunctions[] = {
{ "GetGMTicket", &Script_GetGMTicket },
{ "NewGMTicket", &Script_NewGMTicket },

View File

@ -8,6 +8,7 @@
#include "util/Unimplemented.hpp"
namespace {
int32_t Script_FrameXML_Debug(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}

View File

@ -3,6 +3,8 @@
#include "ui/ScriptFunctionsSystem.hpp"
#include "util/Unimplemented.hpp"
namespace {
int32_t Script_UnitExists(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
@ -679,6 +681,8 @@ int32_t Script_FillLocalizedClassList(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
}
static FrameScript_Method s_UnitFunctions[] = {
{ "UnitExists", &Script_UnitExists },
{ "UnitIsVisible", &Script_UnitIsVisible },

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();
}