BsScriptGUIScrollArea.h 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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(ScriptGUIScrollAreaLayout* layout);
  19. private:
  20. friend class ScriptGUIScrollAreaLayout;
  21. ScriptGUIScrollArea(MonoObject* instance, GUIScrollArea* scrollArea);
  22. /**
  23. * @copydoc TScriptGUIElement::destroy
  24. */
  25. void destroy() override;
  26. /**
  27. * @brief Called when the child script GUI layout gets destroyed. Notifies this object that it shouldn't
  28. * use it anymore.
  29. */
  30. void notifyLayoutDestroyed();
  31. ScriptGUIScrollAreaLayout* mLayout;
  32. /************************************************************************/
  33. /* CLR HOOKS */
  34. /************************************************************************/
  35. static void internal_createInstance(MonoObject* instance, ScrollBarType vertBarType, ScrollBarType horzBarType,
  36. MonoString* scrollBarStyle, MonoString* scrollAreaStyle, MonoArray* guiOptions);
  37. static Rect2I internal_getContentBounds(ScriptGUIScrollArea* nativeInstance);
  38. static float internal_getHorzScroll(ScriptGUIScrollArea* nativeInstance);
  39. static void internal_setHorzScroll(ScriptGUIScrollArea* nativeInstance, float value);
  40. static float internal_getVertScroll(ScriptGUIScrollArea* nativeInstance);
  41. static void internal_setVertScroll(ScriptGUIScrollArea* nativeInstance, float value);
  42. static int internal_getScrollBarWidth(ScriptGUIScrollArea* nativeInstance);
  43. };
  44. }