#pragma once #include "BsScriptEnginePrerequisites.h" #include "BsScriptObject.h" namespace BansheeEngine { class BS_SCR_BE_EXPORT ScriptGUIArea : public ScriptObject { public: static void initMetaData(); GUIArea* getInternalValue() const { return mArea; } void* getNativeRaw() const { return mArea; } private: static void internal_createInstance(MonoObject* instance, MonoObject* parentGUI, CM::INT32 x, CM::INT32 y, CM::UINT32 width, CM::UINT32 height, CM::UINT16 depth); static void internal_createInstanceResizeableX(MonoObject* instance, MonoObject* parentGUI, CM::UINT32 offsetLeft, CM::UINT32 offsetRight, CM::UINT32 offsetTop, CM::UINT32 height, CM::UINT16 depth); static void internal_createInstanceResizeableY(MonoObject* instance, MonoObject* parentGUI, CM::UINT32 offsetTop, CM::UINT32 offsetBottom, CM::UINT32 offsetLeft, CM::UINT32 width, CM::UINT16 depth); static void internal_createInstanceResizeableXY(MonoObject* instance, MonoObject* parentGUI, CM::UINT32 offsetLeft, CM::UINT32 offsetRight, CM::UINT32 offsetTop, CM::UINT32 offsetBottom, CM::UINT16 depth); static void internal_destroyInstance(ScriptGUIArea* nativeInstance); static void internal_destroy(ScriptGUIArea* nativeInstance); static void internal_setVisible(ScriptGUIArea* nativeInstance, bool visible); static void initRuntimeData(); ScriptGUIArea(GUIArea* area, ScriptGUIBase* parentGUI); void destroy(); GUIArea* mArea; ScriptGUIBase* mParentGUI; bool mIsDestroyed; }; }