BsScriptGUIScrollArea.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #pragma once
  2. #include "BsScriptEnginePrerequisites.h"
  3. #include "BsScriptGUIElement.h"
  4. #include "BsGUIScrollArea.h"
  5. namespace BansheeEngine
  6. {
  7. /**
  8. * @brief Interop class between C++ & CLR for GUIScrollArea.
  9. */
  10. class BS_SCR_BE_EXPORT ScriptGUIScrollArea : public TScriptGUIElement<ScriptGUIScrollArea>
  11. {
  12. public:
  13. SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "GUIScrollArea")
  14. /**
  15. * @brief Initializes the interop object by providing it with the interop object for
  16. * the internal layout held by the scroll area.
  17. */
  18. void initialize(ScriptGUILayout* layout);
  19. private:
  20. ScriptGUIScrollArea(MonoObject* instance, GUIScrollArea* scrollArea);
  21. /**
  22. * @copydoc TScriptGUIElement::destroy
  23. */
  24. void destroy() override;
  25. ScriptGUILayout* mLayout;
  26. /************************************************************************/
  27. /* CLR HOOKS */
  28. /************************************************************************/
  29. static void internal_createInstance(MonoObject* instance, ScrollBarType vertBarType, ScrollBarType horzBarType,
  30. MonoString* scrollBarStyle, MonoString* scrollAreaStyle, MonoArray* guiOptions);
  31. static Rect2I internal_getContentBounds(ScriptGUIScrollArea* nativeInstance);
  32. static float internal_getHorzScroll(ScriptGUIScrollArea* nativeInstance);
  33. static void internal_setHorzScroll(ScriptGUIScrollArea* nativeInstance, float value);
  34. static float internal_getVertScroll(ScriptGUIScrollArea* nativeInstance);
  35. static void internal_setVertScroll(ScriptGUIScrollArea* nativeInstance, float value);
  36. static int internal_getScrollBarWidth(ScriptGUIScrollArea* nativeInstance);
  37. };
  38. }