diff --git a/src/ui/simple/CSimpleStatusBar.cpp b/src/ui/simple/CSimpleStatusBar.cpp index 471c842..2787be3 100644 --- a/src/ui/simple/CSimpleStatusBar.cpp +++ b/src/ui/simple/CSimpleStatusBar.cpp @@ -26,6 +26,24 @@ CSimpleStatusBar::CSimpleStatusBar(CSimpleFrame* parent) : CSimpleFrame(parent) // TODO } +FrameScript_Object::ScriptIx* CSimpleStatusBar::GetScriptByName(const char* name, ScriptData& data) { + auto script = this->CSimpleFrame::GetScriptByName(name, data); + + if (script) { + return script; + } + + if (!SStrCmpI(name, "OnValueChanged")) { + script = &this->m_onValueChanged; + data.wrapper = "return function(self,value) %s end"; + } else if (!SStrCmpI(name, "OnMinMaxChanged")) { + script = &this->m_onMinMaxChanged; + data.wrapper = "return function(self,min,max) %s end"; + } + + return script; +} + int32_t CSimpleStatusBar::GetScriptMetaTable() { return CSimpleStatusBar::s_metatable; } diff --git a/src/ui/simple/CSimpleStatusBar.hpp b/src/ui/simple/CSimpleStatusBar.hpp index 812439e..f95d8e7 100644 --- a/src/ui/simple/CSimpleStatusBar.hpp +++ b/src/ui/simple/CSimpleStatusBar.hpp @@ -5,23 +5,34 @@ class CSimpleStatusBar : public CSimpleFrame { public: - // Static variables + // Public static variables static int32_t s_metatable; static int32_t s_objectType; - // Static functions + // Public static functions static void CreateScriptMetaTable(); static int32_t GetObjectType(); static void RegisterScriptMethods(lua_State* L); - // Member variables - // TODO - - // Virtual member functions + // Public virtual member functions virtual int32_t GetScriptMetaTable(); + virtual ScriptIx* GetScriptByName(const char* name, ScriptData& data); - // Member functions + // Public member functions CSimpleStatusBar(CSimpleFrame* parent); + + protected: + // Protected member variables + uint32_t m_changed : 1; + uint32_t m_rangeSet : 1; + uint32_t m_valueSet : 1; + float m_minValue = 0.0f; + float m_maxValue = 0.0f; + float m_value = 0.0f; + CSimpleTexture* m_barTexture = nullptr; + ORIENTATION m_orientation = ORIENTATION_HORIZONTAL; + ScriptIx m_onValueChanged; + ScriptIx m_onMinMaxChanged; }; #endif