mirror of
https://github.com/thunderbrewhq/thunderbrew
synced 2026-01-30 19:42:51 +03:00
40 lines
1.1 KiB
C++
40 lines
1.1 KiB
C++
#ifndef UI_C_SCRIPT_OBJECT_HPP
|
|
#define UI_C_SCRIPT_OBJECT_HPP
|
|
|
|
#include "ui/FrameScript_Object.hpp"
|
|
#include <cstdint>
|
|
#include <common/String.hpp>
|
|
|
|
class CStatus;
|
|
class XMLNode;
|
|
|
|
class CScriptObject : public FrameScript_Object {
|
|
public:
|
|
// Static variables
|
|
static int32_t s_objectType;
|
|
static const char* s_objectTypeName;
|
|
|
|
// Static functions
|
|
static int32_t GetObjectType();
|
|
static void RegisterScriptMethods(lua_State* L);
|
|
static CScriptObject* GetScriptObjectByName(const char* name, int32_t type);
|
|
|
|
// Member variables
|
|
RCString m_name;
|
|
|
|
// Virtual member functions
|
|
virtual ~CScriptObject();
|
|
virtual char* GetName();
|
|
virtual bool IsA(int32_t type);
|
|
virtual CScriptObject* GetScriptObjectParent() = 0;
|
|
virtual bool IsA(const char* typeName);
|
|
virtual const char* GetObjectTypeName();
|
|
|
|
// Member functions
|
|
void CreateName(const char* source, char* dest, uint32_t destsize);
|
|
void PreLoadXML(XMLNode* node, CStatus* status);
|
|
void SetName(const char* name);
|
|
};
|
|
|
|
#endif
|