Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(288)

Side by Side Diff: Source/core/html/track/vtt/VTTCue.h

Issue 77853002: Move VTT functionality from TextTrackCue.* to VTTCue.* (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Address comments in https://codereview.chromium.org/77853002/#msg2. Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2013, Opera Software ASA. All rights reserved. 2 * Copyright (c) 2013, Opera Software ASA. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 17 matching lines...) Expand all
28 */ 28 */
29 29
30 #ifndef VTTCue_h 30 #ifndef VTTCue_h
31 #define VTTCue_h 31 #define VTTCue_h
32 32
33 #include "bindings/v8/ScriptWrappable.h" 33 #include "bindings/v8/ScriptWrappable.h"
34 #include "core/html/track/TextTrackCue.h" 34 #include "core/html/track/TextTrackCue.h"
35 35
36 namespace WebCore { 36 namespace WebCore {
37 37
38 class Document;
39 class ExecutionContext;
40 class VTTCue;
41
42 // ----------------------------
43
44 class VTTCueBox FINAL : public TextTrackCueBox {
45 public:
46 static PassRefPtr<VTTCueBox> create(Document& document, VTTCue* cue)
47 {
48 return adoptRef(new VTTCueBox(document, cue));
49 }
50
51 VTTCue* getCue() const { return m_cue; }
52 void applyCSSProperties(const IntSize& videoSize);
53
54 protected:
55 VTTCueBox(Document&, VTTCue*);
56
57 virtual RenderObject* createRenderer(RenderStyle*) OVERRIDE;
58
59 VTTCue* m_cue;
60 };
61
62 // ----------------------------
63
38 class VTTCue FINAL : public TextTrackCue, public ScriptWrappable { 64 class VTTCue FINAL : public TextTrackCue, public ScriptWrappable {
39 public: 65 public:
40 static PassRefPtr<VTTCue> create(Document&, double startTime, double endTime , const String& text); 66 static PassRefPtr<VTTCue> create(Document& document, double startTime, doubl e endTime, const String& text)
acolwell GONE FROM CHROMIUM 2013/11/21 19:22:00 nit: Remove document param name since it doesn't a
gasubic 2013/11/22 15:27:34 I guess you didn't notice that document is referen
67 {
68 return adoptRef(new VTTCue(document, startTime, endTime, text));
69 }
70
71 virtual ~VTTCue();
72
73 virtual bool isVTTCue() const OVERRIDE { return true; }
74
75 const String& vertical() const;
76 void setVertical(const String&, ExceptionState&);
77
78 bool snapToLines() const { return m_snapToLines; }
79 void setSnapToLines(bool);
80
81 int line() const { return m_linePosition; }
82 void setLine(int, ExceptionState&);
83
84 int position() const { return m_textPosition; }
85 void setPosition(int, ExceptionState&);
86
87 int size() const { return m_cueSize; }
88 void setSize(int, ExceptionState&);
89
90 const String& align() const;
91 void setAlign(const String&, ExceptionState&);
92
93 const String& text() const { return m_text; }
94 void setText(const String&);
95
96 void parseSettings(const String&);
97
98 PassRefPtr<DocumentFragment> getCueAsHTML();
99 PassRefPtr<DocumentFragment> createCueRenderingTree();
100
101 const String& regionId() const { return m_regionId; }
102 void setRegionId(const String&);
103 virtual void notifyRegionWhenRemovingDisplayTree(bool) OVERRIDE;
104
105 virtual void updateDisplay(const IntSize& videoSize, HTMLDivElement* contain er) OVERRIDE;
106
107 virtual void updateDisplayTree(double) OVERRIDE;
108 virtual void removeDisplayTree() OVERRIDE;
109 void markFutureAndPastNodes(ContainerNode*, double, double);
110
111 int calculateComputedLinePosition();
112
113 std::pair<double, double> getCSSPosition() const;
114
115 CSSValueID getCSSAlignment() const;
116 int getCSSSize() const;
117 CSSValueID getCSSWritingDirection() const;
118 CSSValueID getCSSWritingMode() const;
119
120 enum WritingDirection {
121 Horizontal = 0,
122 VerticalGrowingLeft,
123 VerticalGrowingRight,
124 NumberOfWritingDirections
125 };
126 WritingDirection getWritingDirection() const { return m_writingDirection; }
127
128 enum CueAlignment {
129 Start = 0,
130 Middle,
131 End,
132 Left,
133 Right,
134 NumberOfAlignments
135 };
136 CueAlignment getAlignment() const { return m_cueAlignment; }
137
138 virtual ExecutionContext* executionContext() const OVERRIDE;
41 139
42 private: 140 private:
43 VTTCue(Document&, double startTime, double endTime, const String& text); 141 VTTCue(Document&, double startTime, double endTime, const String& text);
142
143 Document& document() const;
144
145 PassRefPtr<VTTCueBox> displayTreeInternal();
146 PassRefPtr<TextTrackCueBox> getDisplayTree(const IntSize& videoSize);
147
148 virtual void cueDidChange() OVERRIDE;
149
150 void createVTTNodeTree();
151 void copyVTTNodeToDOMTree(ContainerNode* VTTNode, ContainerNode* root);
152
153 std::pair<double, double> getPositionCoordinates() const;
154
155 void determineTextDirection();
156 void calculateDisplayParameters();
157
158 enum CueSetting {
159 None,
160 Vertical,
161 Line,
162 Position,
163 Size,
164 Align,
165 RegionId
166 };
167 CueSetting settingName(const String&);
168
169 String m_text;
170 int m_linePosition;
171 int m_computedLinePosition;
172 int m_textPosition;
173 int m_cueSize;
174 WritingDirection m_writingDirection;
175
176 CueAlignment m_cueAlignment;
177
178 RefPtr<DocumentFragment> m_webVTTNodeTree;
179 bool m_snapToLines;
180
181 RefPtr<HTMLDivElement> m_cueBackgroundBox;
182
183 bool m_displayTreeShouldChange;
184 RefPtr<VTTCueBox> m_displayTree;
185
186 CSSValueID m_displayDirection;
187
188 int m_displaySize;
189
190 std::pair<float, float> m_displayPosition;
191 String m_regionId;
192 bool m_notifyRegion;
44 }; 193 };
45 194
46 inline VTTCue* toVTTCue(TextTrackCue* cue) 195 inline VTTCue* toVTTCue(TextTrackCue* cue)
47 { 196 {
48 // VTTCue is currently the only TextTrackCue subclass. 197 // VTTCue is currently the only TextTrackCue subclass.
49 return static_cast<VTTCue*>(cue); 198 return static_cast<VTTCue*>(cue);
50 } 199 }
51 200
52 } // namespace WebCore 201 } // namespace WebCore
53 202
54 #endif 203 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698