Use "= default" to denote default constructor or destructor
[WebKit-https.git] / Source / WebCore / html / shadow / MediaControlElementTypes.h
index 91b0c8a..c959c94 100644 (file)
@@ -11,7 +11,7 @@
  * 2.  Redistributions in binary form must reproduce the above copyright
  *     notice, this list of conditions and the following disclaimer in the
  *     documentation and/or other materials provided with the distribution.
- * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * 3.  Neither the name of Apple Inc. ("Apple") nor the names of
  *     its contributors may be used to endorse or promote products derived
  *     from this software without specific prior written permission.
  *
@@ -27,8 +27,7 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#ifndef MediaControlElementTypes_h
-#define MediaControlElementTypes_h
+#pragma once
 
 #if ENABLE(VIDEO)
 
 #include "HTMLInputElement.h"
 #include "HTMLMediaElement.h"
 #include "MediaControllerInterface.h"
-#include "RenderBlock.h"
+#include "RenderObject.h"
 
 namespace WebCore {
 
-// Must match WebKitSystemInterface.h
 enum MediaControlElementType {
     MediaEnterFullscreenButton = 0,
     MediaMuteButton,
@@ -74,16 +72,11 @@ enum MediaControlElementType {
     MediaClosedCaptionsTrackList,
 };
 
-HTMLMediaElement* toParentMediaElement(Node*);
-inline HTMLMediaElement* toParentMediaElement(RenderObject* renderer) { return toParentMediaElement(renderer->node()); }
+RefPtr<HTMLMediaElement> parentMediaElement(Node*);
+inline RefPtr<HTMLMediaElement> parentMediaElement(const RenderObject& renderer) { return parentMediaElement(renderer.node()); }
 
 MediaControlElementType mediaControlElementType(Node*);
 
-#if ENABLE(VIDEO_TRACK)
-const AtomicString& trackIndexAttributeName();
-int trackListIndexForElement(Element*);
-#endif
-
 // ----------------------------
 
 class MediaControlElement {
@@ -93,14 +86,13 @@ public:
     virtual bool isShowing() const;
 
     virtual MediaControlElementType displayType() { return m_displayType; }
-    virtual const AtomicString& shadowPseudoId() const = 0;
 
     virtual void setMediaController(MediaControllerInterface* controller) { m_mediaController = controller; }
     virtual MediaControllerInterface* mediaController() const { return m_mediaController; }
 
 protected:
     explicit MediaControlElement(MediaControlElementType, HTMLElement*);
-    ~MediaControlElement() { }
+    ~MediaControlElement() = default;
 
     virtual void setDisplayType(MediaControlElementType);
     virtual bool isMediaControlElement() const { return true; }
@@ -115,18 +107,20 @@ private:
 
 class MediaControlDivElement : public HTMLDivElement, public MediaControlElement {
 protected:
-    virtual bool isMediaControlElement() const OVERRIDE { return MediaControlElement::isMediaControlElement(); }
-    explicit MediaControlDivElement(Document*, MediaControlElementType);
+    explicit MediaControlDivElement(Document&, MediaControlElementType);
+
+private:
+    bool isMediaControlElement() const final { return MediaControlElement::isMediaControlElement(); }
 };
 
 // ----------------------------
 
 class MediaControlInputElement : public HTMLInputElement, public MediaControlElement {
 protected:
-    virtual bool isMediaControlElement() const OVERRIDE { return MediaControlElement::isMediaControlElement(); }
-    explicit MediaControlInputElement(Document*, MediaControlElementType);
+    explicit MediaControlInputElement(Document&, MediaControlElementType);
 
 private:
+    bool isMediaControlElement() const final { return MediaControlElement::isMediaControlElement(); }
     virtual void updateDisplayType() { }
 };
 
@@ -134,16 +128,14 @@ private:
 
 class MediaControlTimeDisplayElement : public MediaControlDivElement {
 public:
-    void setCurrentValue(float);
-    float currentValue() const { return m_currentValue; }
+    void setCurrentValue(double);
+    double currentValue() const { return m_currentValue; }
 
 protected:
-    explicit MediaControlTimeDisplayElement(Document*, MediaControlElementType);
+    explicit MediaControlTimeDisplayElement(Document&, MediaControlElementType);
 
 private:
-    virtual RenderObject* createRenderer(RenderArena*, RenderStyle*) OVERRIDE;
-
-    float m_currentValue;
+    double m_currentValue;
 };
 
 // ----------------------------
@@ -152,57 +144,46 @@ class MediaControlMuteButtonElement : public MediaControlInputElement {
 public:
     void changedMute();
 
-    virtual bool willRespondToMouseClickEvents() OVERRIDE { return true; }
+    bool willRespondToMouseClickEvents() override { return true; }
 
 protected:
-    explicit MediaControlMuteButtonElement(Document*, MediaControlElementType);
+    explicit MediaControlMuteButtonElement(Document&, MediaControlElementType);
 
-    virtual void defaultEventHandler(Event*) OVERRIDE;
+    void defaultEventHandler(Event&) override;
 
 private:
-    virtual void updateDisplayType() OVERRIDE;
+    void updateDisplayType() override;
 };
 
 // ----------------------------
 
 class MediaControlSeekButtonElement : public MediaControlInputElement {
 public:
-    virtual bool willRespondToMouseClickEvents() OVERRIDE { return true; }
+    bool willRespondToMouseClickEvents() override { return true; }
 
 protected:
-    explicit MediaControlSeekButtonElement(Document*, MediaControlElementType);
+    explicit MediaControlSeekButtonElement(Document&, MediaControlElementType);
 
-    virtual void defaultEventHandler(Event*) OVERRIDE;
+    void defaultEventHandler(Event&) override;
     virtual bool isForwardButton() const = 0;
 
 private:
-    void setActive(bool /*flag*/ = true, bool /*pause*/ = false);
-
-    void startTimer();
-    void stopTimer();
-    float nextRate() const;
-    void seekTimerFired(Timer<MediaControlSeekButtonElement>*);
-
-    enum ActionType { Nothing, Play, Pause };
-    ActionType m_actionOnStop;
-    enum SeekType { Skip, Scan };
-    SeekType m_seekType;
-    Timer<MediaControlSeekButtonElement> m_seekTimer;
+    void setActive(bool /*flag*/ = true, bool /*pause*/ = false) final;
 };
 
 // ----------------------------
 
 class MediaControlVolumeSliderElement : public MediaControlInputElement {
 public:
-    virtual bool willRespondToMouseMoveEvents() OVERRIDE;
-    virtual bool willRespondToMouseClickEvents() OVERRIDE;
-    void setVolume(float);
+    bool willRespondToMouseMoveEvents() override;
+    bool willRespondToMouseClickEvents() override;
+    void setVolume(double);
     void setClearMutedOnUserInteraction(bool);
 
 protected:
-    explicit MediaControlVolumeSliderElement(Document*);
+    explicit MediaControlVolumeSliderElement(Document&);
 
-    virtual void defaultEventHandler(Event*) OVERRIDE;
+    void defaultEventHandler(Event&) override;
 
 private:
     bool m_clearMutedOnUserInteraction;
@@ -211,5 +192,3 @@ private:
 } // namespace WebCore
 
 #endif // ENABLE(VIDEO)
-
-#endif // MediaControlElementTypes_h