thunderbrew/src/ui/CScriptRegion.hpp

53 lines
1.9 KiB
C++
Raw Normal View History

2023-01-02 13:17:18 -06:00
#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*);
static int32_t GetObjectType(void);
// Member variables
CSimpleFrame* m_parent = NULL; // TODO verify type
// Virtual member functions
virtual bool IsA(int32_t);
virtual CScriptObject* GetScriptObjectParent(void);
virtual bool IsA(const char*);
virtual const char* GetObjectTypeName(void);
virtual bool IsDragging(void);
virtual void PreOnAnimUpdate(void) {};
virtual void OnLayerUpdate(float);
virtual void NotifyAnimBegin(CSimpleAnimGroup*);
virtual void NotifyAnimEnd(CSimpleAnimGroup*);
virtual void StopAnimating(void);
virtual void AnimActivated(CSimpleAnimGroup*, int32_t, int32_t) {};
virtual void AnimDeactivated(CSimpleAnimGroup*, 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*, CStatus*);
virtual CLayoutFrame* GetLayoutParent(void);
virtual CLayoutFrame* GetLayoutFrameByName(const char*);
// Member functions
void LoadXML_Animations(XMLNode*, CStatus*);
bool ProtectedFunctionsAllowed(void);
};
#endif