BsScriptGUIScrollArea.h 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #pragma once
  4. #include "BsScriptEnginePrerequisites.h"
  5. #include "Wrappers/GUI/BsScriptGUIElement.h"
  6. #include "GUI/BsGUIScrollArea.h"
  7. namespace bs
  8. {
  9. /** @addtogroup ScriptInteropEngine
  10. * @{
  11. */
  12. /** Interop class between C++ & CLR for GUIScrollArea. */
  13. class BS_SCR_BE_EXPORT ScriptGUIScrollArea : public TScriptGUIElement<ScriptGUIScrollArea>
  14. {
  15. public:
  16. SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "GUIScrollArea")
  17. /**
  18. * Initializes the interop object by providing it with the interop object for the internal layout held by the
  19. * scroll area.
  20. */
  21. void initialize(ScriptGUIScrollAreaLayout* layout);
  22. private:
  23. friend class ScriptGUIScrollAreaLayout;
  24. ScriptGUIScrollArea(MonoObject* instance, GUIScrollArea* scrollArea);
  25. /** @copydoc TScriptGUIElement::destroy */
  26. void destroy() override;
  27. /**
  28. * Called when the child script GUI layout gets destroyed. Notifies this object that it shouldn't 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 void internal_getContentBounds(ScriptGUIScrollArea* nativeInstance, Rect2I* bounds);
  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. /** @} */
  45. }