2
0

BsScriptHandleSlider.h 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #pragma once
  4. #include "BsScriptEditorPrerequisites.h"
  5. #include "BsScriptObject.h"
  6. #include "BsHandleSlider.h"
  7. #include "BsQuaternion.h"
  8. #include "BsVector3.h"
  9. namespace BansheeEngine
  10. {
  11. /**
  12. * @brief Base class for all C++/CLR interop objects that deal with handle sliders.
  13. */
  14. class BS_SCR_BED_EXPORT ScriptHandleSliderBase : public ScriptObjectBase
  15. {
  16. public:
  17. ScriptHandleSliderBase(MonoObject* managedInstance);
  18. virtual ~ScriptHandleSliderBase();
  19. /**
  20. * @brief Returns the internal native handle slider.
  21. */
  22. virtual HandleSlider* getSlider() const = 0;
  23. protected:
  24. friend class ScriptHandleSlider;
  25. friend class ScriptHandleSliderManager;
  26. /**
  27. * @brief Destroys the internal native handle slider and unregisters it with
  28. * with handle manager.
  29. */
  30. void destroy();
  31. /**
  32. * @brief Destroys the internal native handle slider.
  33. */
  34. virtual void destroyInternal() = 0;
  35. };
  36. /**
  37. * @brief Interop class between C++ & CLR for HandleSlider.
  38. */
  39. class BS_SCR_BED_EXPORT ScriptHandleSlider : public ScriptObject <ScriptHandleSlider>
  40. {
  41. public:
  42. SCRIPT_OBJ(EDITOR_ASSEMBLY, "BansheeEditor", "HandleSlider")
  43. private:
  44. ScriptHandleSlider(MonoObject* instance);
  45. /************************************************************************/
  46. /* CLR HOOKS */
  47. /************************************************************************/
  48. static void internal_Destroy(ScriptHandleSliderBase* nativeInstance);
  49. static void internal_GetPosition(ScriptHandleSliderBase* nativeInstance, Vector3* value);
  50. static void internal_SetPosition(ScriptHandleSliderBase* nativeInstance, Vector3* value);
  51. static void internal_GetRotation(ScriptHandleSliderBase* nativeInstance, Quaternion* value);
  52. static void internal_SetRotation(ScriptHandleSliderBase* nativeInstance, Quaternion* value);
  53. static void internal_GetScale(ScriptHandleSliderBase* nativeInstance, Vector3* value);
  54. static void internal_SetScale(ScriptHandleSliderBase* nativeInstance, Vector3* value);
  55. static bool internal_GetEnabled(ScriptHandleSliderBase* nativeInstance);
  56. static void internal_SetEnabled(ScriptHandleSliderBase* nativeInstance, bool value);
  57. static void internal_GetState(ScriptHandleSliderBase* nativeInstance, HandleSlider::State* value);
  58. };
  59. }