BsScriptGUILayout.h 1.9 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. private:
  22. friend class ScriptGUIPanel;
  23. static void internal_createInstanceX(MonoObject* instance, MonoArray* guiOptions);
  24. static void internal_createInstanceY(MonoObject* instance, MonoArray* guiOptions);
  25. static void internal_createInstancePanel(MonoObject* instance, INT16 depth, UINT16 depthRangeMin, UINT32 depthRangeMax, MonoArray* guiOptions);
  26. static void internal_addElement(ScriptGUILayout* instance, ScriptGUIElementBaseTBase* element);
  27. static void internal_insertElement(ScriptGUILayout* instance, UINT32 index, ScriptGUIElementBaseTBase* element);
  28. static UINT32 internal_getChildCount(ScriptGUILayout* instance);
  29. static MonoObject* internal_getChild(ScriptGUILayout* instance, UINT32 index);
  30. static void internal_createInstanceYFromScrollArea(MonoObject* instance, MonoObject* parentScrollArea);
  31. ScriptGUILayout(MonoObject* instance, GUILayout* layout);
  32. GUILayout* mLayout;
  33. Vector<ChildInfo> mChildren;
  34. bool mIsDestroyed;
  35. };
  36. class BS_SCR_BE_EXPORT ScriptGUIPanel : public ScriptObject<ScriptGUIPanel>
  37. {
  38. public:
  39. SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "GUIPanel")
  40. static MonoObject* createFromExisting(GUIPanel* panel);
  41. private:
  42. ScriptGUIPanel(MonoObject* instance);
  43. };
  44. }