Move HTML canvas and tracks from ExceptionCode to Exception
[WebKit-https.git] / Source / WebCore / html / track / TextTrackCueGeneric.h
index dd89f7e..6c281eb 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013 Apple Inc. All rights reserved.
+ * Copyright (C) 2013, 2014 Apple Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  *    notice, this list of conditions and the following disclaimer in the
  *    documentation and/or other materials provided with the distribution.
  *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#ifndef TextTrackCueGeneric_h
-#define TextTrackCueGeneric_h
+#pragma once
 
 #if ENABLE(VIDEO_TRACK)
 
 #include "Color.h"
-#include "TextTrackCue.h"
-#include <wtf/RefCounted.h>
+#include "VTTCue.h"
 
 namespace WebCore {
 
 class GenericCueData;
 
 // A "generic" cue is a non-WebVTT cue, so it is not positioned/sized with the WebVTT logic.
-class TextTrackCueGeneric : public TextTrackCue {
+class TextTrackCueGeneric final : public VTTCue {
 public:
-    static PassRefPtr<TextTrackCueGeneric> create(ScriptExecutionContext* context, double start, double end, const String& content)
+    static Ref<TextTrackCueGeneric> create(ScriptExecutionContext& context, const MediaTime& start, const MediaTime& end, const String& content)
     {
-        return adoptRef(new TextTrackCueGeneric(context, start, end, content));
+        return adoptRef(*new TextTrackCueGeneric(context, start, end, content));
     }
-    
-    virtual ~TextTrackCueGeneric() { }
 
-    virtual PassRefPtr<TextTrackCueBox> createDisplayTree() OVERRIDE;
+    ExceptionOr<void> setLine(double) final;
+    ExceptionOr<void> setPosition(double) final;
 
-    virtual void setLine(int, ExceptionCode&) OVERRIDE;
-    virtual void setPosition(int, ExceptionCode&) OVERRIDE;
+    bool useDefaultPosition() const { return m_useDefaultPosition; }
 
-    bool useDefaultPosition() const { return m_defaultPosition; }
-    
     double baseFontSizeRelativeToVideoHeight() const { return m_baseFontSizeRelativeToVideoHeight; }
     void setBaseFontSizeRelativeToVideoHeight(double size) { m_baseFontSizeRelativeToVideoHeight = size; }
 
     double fontSizeMultiplier() const { return m_fontSizeMultiplier; }
     void setFontSizeMultiplier(double size) { m_fontSizeMultiplier = size; }
 
-    String fontName() const { return m_fontName; }
-    void setFontName(String name) { m_fontName = name; }
+    const String& fontName() const { return m_fontName; }
+    void setFontName(const String& name) { m_fontName = name; }
 
-    Color foregroundColor() const { return m_foregroundColor; }
-    void setForegroundColor(RGBA32 color) { m_foregroundColor.setRGB(color); }
+    const Color& foregroundColor() const { return m_foregroundColor; }
+    void setForegroundColor(const Color& color) { m_foregroundColor = color; }
     
-    Color backgroundColor() const { return m_backgroundColor; }
-    void setBackgroundColor(RGBA32 color) { m_backgroundColor.setRGB(color); }
-
-    virtual void setFontSize(int, const IntSize&, bool important) OVERRIDE;
-
-    virtual bool isEqual(const TextTrackCue&, CueMatchRules) const OVERRIDE;
+    const Color& backgroundColor() const { return m_backgroundColor; }
+    void setBackgroundColor(const Color& color) { m_backgroundColor = color; }
+    
+    const Color& highlightColor() const { return m_highlightColor; }
+    void setHighlightColor(const Color& color) { m_highlightColor = color; }
 
-    virtual TextTrackCue::CueType cueType() const OVERRIDE { return TextTrackCue::Generic; }
+    void setFontSize(int, const IntSize&, bool important) final;
 
 private:
-    TextTrackCueGeneric(ScriptExecutionContext*, double start, double end, const String&);
+    TextTrackCueGeneric(ScriptExecutionContext&, const MediaTime& start, const MediaTime& end, const String&);
     
+    bool isOrderedBefore(const TextTrackCue*) const final;
+    bool isPositionedAbove(const TextTrackCue*) const final;
+
+    Ref<VTTCueBox> createDisplayTree() final;
+
+    bool isEqual(const TextTrackCue&, CueMatchRules) const final;
+    bool cueContentsMatch(const TextTrackCue&) const final;
+    bool doesExtendCue(const TextTrackCue&) const final;
+
+    CueType cueType() const final { return Generic; }
+
     Color m_foregroundColor;
     Color m_backgroundColor;
-    double m_baseFontSizeRelativeToVideoHeight;
-    double m_fontSizeMultiplier;
+    Color m_highlightColor;
+    double m_baseFontSizeRelativeToVideoHeight { 0 };
+    double m_fontSizeMultiplier { 0 };
     String m_fontName;
-    bool m_defaultPosition;
+    bool m_useDefaultPosition { true };
 };
 
 } // namespace WebCore
 
 #endif
-#endif