thunderbrew/src/ui/CScriptRegion.hpp

53 lines
1.9 KiB
C++

#ifndef UI_C_SCRIPT_REGION_HPP
#define UI_C_SCRIPT_REGION_HPP
#include "ui/CLayoutFrame.hpp"
#include "ui/CScriptObject.hpp"
class C2Vector;
class CSimpleAnimGroup;
class CSimpleFrame;
class XMLNode;
struct lua_State;
class CScriptRegion : public CScriptObject, public CLayoutFrame {
public:
// Static members
static int32_t s_objectType;
static const char* s_objectTypeName;
// Static functions
static void RegisterScriptMethods(lua_State* L);
static int32_t GetObjectType();
// Member variables
CSimpleFrame* m_parent = nullptr; // TODO verify type
// Virtual member functions
virtual bool IsA(int32_t type);
virtual CScriptObject* GetScriptObjectParent();
virtual bool IsA(const char* typeName);
virtual const char* GetObjectTypeName();
virtual bool IsDragging();
virtual void PreOnAnimUpdate() {};
virtual void OnLayerUpdate(float elapsedSec);
virtual void NotifyAnimBegin(CSimpleAnimGroup* animGroup);
virtual void NotifyAnimEnd(CSimpleAnimGroup* animGroup);
virtual void StopAnimating();
virtual void AnimActivated(CSimpleAnimGroup* animGroup, int32_t, int32_t) {};
virtual void AnimDeactivated(CSimpleAnimGroup* animGroup, int32_t, int32_t) {};
virtual void AddAnimTranslation(CScriptRegion*, const C2Vector&) {};
virtual void AddAnimRotation(CScriptRegion*, FRAMEPOINT, const C2Vector&, float) {};
virtual void AddAnimScale(CScriptRegion*, FRAMEPOINT, const C2Vector&, const C2Vector&) {};
virtual void AddAnimAlpha(CScriptRegion*, int16_t) {};
virtual void LoadXML(XMLNode* node, CStatus* status);
virtual CLayoutFrame* GetLayoutParent();
virtual CLayoutFrame* GetLayoutFrameByName(const char* name);
// Member functions
void LoadXML_Animations(XMLNode* node, CStatus* status);
bool ProtectedFunctionsAllowed();
};
#endif