2
0

BsScriptGUILayout.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #pragma once
  2. #include "BsScriptEnginePrerequisites.h"
  3. #include "BsScriptGUIElement.h"
  4. namespace BansheeEngine
  5. {
  6. class BS_SCR_BE_EXPORT ScriptGUILayout : public TScriptGUIElementBase<ScriptGUILayout>
  7. {
  8. struct ChildInfo
  9. {
  10. ScriptGUIElementBaseTBase* element;
  11. uint32_t gcHandle;
  12. };
  13. public:
  14. SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "GUILayout")
  15. GUILayout* getInternalValue() const { return mLayout; }
  16. void* getNativeRaw() const { return mLayout; }
  17. void addChild(ScriptGUIElementBaseTBase* element);
  18. void insertChild(UINT32 index, ScriptGUIElementBaseTBase* element);
  19. void removeChild(ScriptGUIElementBaseTBase* element);
  20. void destroy() override;
  21. void destroyChildren();
  22. void markAsDestroyed();
  23. private:
  24. friend class ScriptGUIPanel;
  25. static void internal_createInstanceX(MonoObject* instance, MonoArray* guiOptions);
  26. static void internal_createInstanceY(MonoObject* instance, MonoArray* guiOptions);
  27. static void internal_createInstancePanel(MonoObject* instance, INT16 depth, UINT16 depthRangeMin, UINT32 depthRangeMax, MonoArray* guiOptions);
  28. static void internal_addElement(ScriptGUILayout* instance, ScriptGUIElementBaseTBase* element);
  29. static void internal_insertElement(ScriptGUILayout* instance, UINT32 index, ScriptGUIElementBaseTBase* element);
  30. static UINT32 internal_getChildCount(ScriptGUILayout* instance);
  31. static MonoObject* internal_getChild(ScriptGUILayout* instance, UINT32 index);
  32. static void internal_createInstanceYFromScrollArea(MonoObject* instance, MonoObject* parentScrollArea);
  33. ScriptGUILayout(MonoObject* instance, GUILayout* layout);
  34. GUILayout* mLayout;
  35. Vector<ChildInfo> mChildren;
  36. bool mIsDestroyed;
  37. };
  38. class BS_SCR_BE_EXPORT ScriptGUIPanel : public ScriptObject<ScriptGUIPanel>
  39. {
  40. public:
  41. SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "GUIPanel")
  42. static MonoObject* createFromExisting(GUIPanel* panel);
  43. private:
  44. ScriptGUIPanel(MonoObject* instance);
  45. };
  46. }