UIAnimationSlide.h 947 B

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