Index: third_party/WebKit/Source/core/html/HTMLMarqueeElement.h |
diff --git a/third_party/WebKit/Source/core/html/HTMLMarqueeElement.h b/third_party/WebKit/Source/core/html/HTMLMarqueeElement.h |
index 45a4af5852fe8621399911db29717db1dfaf0f1a..1dc3aa8846ecb17d881ac3e7f4bbee5929d7392a 100644 |
--- a/third_party/WebKit/Source/core/html/HTMLMarqueeElement.h |
+++ b/third_party/WebKit/Source/core/html/HTMLMarqueeElement.h |
@@ -23,7 +23,11 @@ |
#ifndef HTMLMarqueeElement_h |
#define HTMLMarqueeElement_h |
+#include "core/animation/Animation.h" |
+#include "core/animation/KeyframeEffectModel.h" |
+#include "core/dom/FrameRequestCallback.h" |
#include "core/html/HTMLElement.h" |
+#include "wtf/Noncopyable.h" |
namespace blink { |
@@ -31,6 +35,8 @@ class HTMLMarqueeElement final : public HTMLElement { |
DEFINE_WRAPPERTYPEINFO(); |
public: |
+ DECLARE_VIRTUAL_TRACE(); |
+ |
static HTMLMarqueeElement* create(Document&); |
void attributeChanged(const QualifiedName&, |
@@ -42,8 +48,102 @@ class HTMLMarqueeElement final : public HTMLElement { |
bool isHorizontal() const; |
+ int scrollAmount() const; |
+ void setScrollAmount(int, ExceptionState&); |
+ |
+ int scrollDelay() const; |
+ void setScrollDelay(int, ExceptionState&); |
+ |
+ int loop() const; |
+ void setLoop(int, ExceptionState&); |
+ |
+ void start(); |
+ void stop(); |
+ |
private: |
explicit HTMLMarqueeElement(Document&); |
+ |
+ class RequestAnimationFrameCallback final : public FrameRequestCallback { |
tkent
2016/12/06 22:43:11
This class definition should be moved to HTMLMarqu
|
+ WTF_MAKE_NONCOPYABLE(RequestAnimationFrameCallback); |
+ |
+ public: |
+ explicit RequestAnimationFrameCallback(HTMLMarqueeElement* marquee) |
+ : m_marquee(marquee) {} |
+ void handleEvent(double) override; |
+ |
+ DEFINE_INLINE_VIRTUAL_TRACE() { |
+ visitor->trace(m_marquee); |
+ FrameRequestCallback::trace(visitor); |
+ } |
+ |
+ private: |
+ Member<HTMLMarqueeElement> m_marquee; |
+ }; |
+ |
+ class AnimationFinished final : public EventListener { |
tkent
2016/12/06 22:43:11
This class definition should be moved to HTMLMarqu
|
+ WTF_MAKE_NONCOPYABLE(AnimationFinished); |
+ |
+ public: |
+ explicit AnimationFinished(HTMLMarqueeElement* marquee) |
+ : EventListener(CPPEventListenerType), m_marquee(marquee) {} |
+ |
+ bool operator==(const EventListener& that) const override { |
+ return this == &that; |
+ } |
+ |
+ void handleEvent(ExecutionContext*, Event*) override; |
+ |
+ DEFINE_INLINE_VIRTUAL_TRACE() { |
+ visitor->trace(m_marquee); |
+ EventListener::trace(visitor); |
+ } |
+ |
+ private: |
+ Member<HTMLMarqueeElement> m_marquee; |
+ }; |
+ |
+ struct AnimationParameters { |
+ String transformBegin; |
+ String transformEnd; |
+ double distance; |
+ }; |
+ |
+ struct Metrics { |
+ double contentWidth; |
+ double contentHeight; |
+ double marqueeWidth; |
+ double marqueeHeight; |
+ }; |
+ |
+ void attributeChangedCallback(const QualifiedName& attr, |
+ const String& newValue); |
+ |
+ StringKeyframeEffectModel* createEffectModel(AnimationParameters&); |
+ |
+ void continueAnimation(); |
+ bool shouldContinue(); |
+ |
+ enum Behavior { Scroll, Slide, Alternate }; |
tkent
2016/12/06 22:43:11
Please prepend 'k' to enum members.
|
+ Behavior behavior() const; |
tkent
2016/12/06 22:43:11
This will prevent naming rule conversion coming so
|
+ |
+ enum Direction { Left, Right, Up, Down }; |
tkent
2016/12/06 22:43:11
Please prepend 'k' to enum members.
|
+ Direction direction() const; |
tkent
2016/12/06 22:43:11
This will prevent naming rule conversion coming so
|
+ |
+ bool trueSpeed() const; |
tkent
2016/12/06 22:43:11
I don't think this function is necessary. It's us
esprehn
2016/12/07 00:10:00
This is web exposed API.
adithyas
2016/12/08 15:12:11
This function is private, the web exposed API is i
|
+ |
+ Metrics getMetrics(); |
+ AnimationParameters getAnimationParameters(); |
+ AtomicString createTransform(double value) const; |
+ |
+ static const int kDefaultScrollAmount = 6; |
+ static const int kDefaultScrollDelayMS = 85; |
+ static const int kMinimumScrollDelayMS = 60; |
+ static const int kDefaultLoopLimit = -1; |
+ |
+ int m_continueCallbackRequestId = 0; |
+ int m_loopCount = 0; |
+ Member<Element> m_mover; |
+ Member<Animation> m_player; |
}; |
} // namespace blink |