AnimationEffectTiming.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
  2. /* vim:set ts=2 sw=2 sts=2 et cindent: */
  3. /* This Source Code Form is subject to the terms of the Mozilla Public
  4. * License, v. 2.0. If a copy of the MPL was not distributed with this
  5. * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
  6. #ifndef mozilla_dom_AnimationEffectTiming_h
  7. #define mozilla_dom_AnimationEffectTiming_h
  8. #include "mozilla/dom/AnimationEffectTimingReadOnly.h"
  9. #include "mozilla/Attributes.h" // For MOZ_NON_OWNING_REF
  10. #include "nsStringFwd.h"
  11. namespace mozilla {
  12. namespace dom {
  13. class KeyframeEffect;
  14. class AnimationEffectTiming : public AnimationEffectTimingReadOnly
  15. {
  16. public:
  17. AnimationEffectTiming(nsIDocument* aDocument,
  18. const TimingParams& aTiming,
  19. KeyframeEffect* aEffect)
  20. : AnimationEffectTimingReadOnly(aDocument, aTiming)
  21. , mEffect(aEffect) { }
  22. JSObject* WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override;
  23. void Unlink() override { mEffect = nullptr; }
  24. void SetDelay(double aDelay);
  25. void SetEndDelay(double aEndDelay);
  26. void SetFill(const FillMode& aFill);
  27. void SetIterationStart(double aIterationStart, ErrorResult& aRv);
  28. void SetIterations(double aIterations, ErrorResult& aRv);
  29. void SetDuration(const UnrestrictedDoubleOrString& aDuration,
  30. ErrorResult& aRv);
  31. void SetDirection(const PlaybackDirection& aDirection);
  32. void SetEasing(const nsAString& aEasing, ErrorResult& aRv);
  33. private:
  34. KeyframeEffect* MOZ_NON_OWNING_REF mEffect;
  35. };
  36. } // namespace dom
  37. } // namespace mozilla
  38. #endif // mozilla_dom_AnimationEffectTiming_h