UIAnimationSlide.h 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // Jolt Physics Library (https://github.com/jrouwe/JoltPhysics)
  2. // SPDX-FileCopyrightText: 2021 Jorrit Rouwe
  3. // SPDX-License-Identifier: MIT
  4. #pragma once
  5. #include <UI/UIAnimation.h>
  6. /// Animation that slides an element on or off screen
  7. class UIAnimationSlide : public UIAnimation
  8. {
  9. public:
  10. JPH_DECLARE_RTTI_ABSTRACT(JPH_NO_EXPORT, UIAnimationSlide)
  11. /// Mode of sliding
  12. enum EMode
  13. {
  14. SLIDE_ON_SCREEN,
  15. SLIDE_OFF_SCREEN,
  16. };
  17. /// Constructor
  18. UIAnimationSlide(EMode inMode, int inSlideDistanceH, int inSlideDistanceV, float inTimeBeforeSlide, float inSlideTime);
  19. ///@name Interface
  20. virtual void Init(UIElement *inElement) override;
  21. virtual bool Update(UIElement *inElement, float inDeltaTime) override;
  22. virtual void Exit(UIElement *inElement) override;
  23. private:
  24. EMode mSlideMode;
  25. int mSlideDistanceH;
  26. int mSlideDistanceV;
  27. float mTimeBeforeSlide;
  28. float mSlideTime;
  29. int mInitialRelativeX;
  30. int mInitialRelativeY;
  31. int mTargetRelativeX;
  32. int mTargetRelativeY;
  33. float mTime;
  34. };