Index: third_party/WebKit/Source/core/editing/markers/DocumentMarker.h |
diff --git a/third_party/WebKit/Source/core/editing/markers/DocumentMarker.h b/third_party/WebKit/Source/core/editing/markers/DocumentMarker.h |
index 6952d56a9d35a1238035f1fb2e0e377ad0d1f18c..36f75547e81f95c5905b9fb746628dc7e5627641 100644 |
--- a/third_party/WebKit/Source/core/editing/markers/DocumentMarker.h |
+++ b/third_party/WebKit/Source/core/editing/markers/DocumentMarker.h |
@@ -31,14 +31,13 @@ |
namespace blink { |
-class DocumentMarkerDetails; |
- |
// A range of a node within a document that is "marked", such as the range of a |
// misspelled word. It optionally includes a description that could be displayed |
// in the user interface. It also optionally includes a flag specifying whether |
// the match is active, which is ignored for all types other than type |
// TextMatch. |
-class CORE_EXPORT DocumentMarker : public GarbageCollected<DocumentMarker> { |
+class CORE_EXPORT DocumentMarker |
+ : public GarbageCollectedFinalized<DocumentMarker> { |
public: |
enum MarkerTypeIndex { |
SpellingMarkerIndex = 0, |
@@ -134,31 +133,19 @@ class CORE_EXPORT DocumentMarker : public GarbageCollected<DocumentMarker> { |
SpellCheckClientMarkers() : MarkerTypes(Spelling | Grammar) {} |
}; |
- virtual DocumentMarker* clone() const; |
+ virtual ~DocumentMarker(); |
- DocumentMarker(MarkerType, |
- unsigned startOffset, |
- unsigned endOffset, |
- const String& description); |
- DocumentMarker(unsigned startOffset, |
- unsigned endOffset, |
- Color underlineColor, |
- bool thick, |
- Color backgroundColor); |
+ virtual DocumentMarker* clone() const = 0; |
- MarkerType type() const { return m_type; } |
+ virtual MarkerType type() const = 0; |
unsigned startOffset() const { return m_startOffset; } |
unsigned endOffset() const { return m_endOffset; } |
- const String& description() const; |
- bool activeMatch() const; |
- Color underlineColor() const; |
- bool thick() const; |
- Color backgroundColor() const; |
- DocumentMarkerDetails* details() const; |
- |
- void setActiveMatch(bool); |
- void clearDetails() { m_details.clear(); } |
+ virtual const String& description() const; |
Xiaocheng
2017/03/29 23:40:11
These functions only make sense in subclasses. Can
|
+ virtual bool activeMatch() const; |
+ virtual Color underlineColor() const; |
+ virtual bool thick() const; |
+ virtual Color backgroundColor() const; |
struct ShiftMarkerResult { |
unsigned newStartOffset; |
@@ -176,44 +163,25 @@ class CORE_EXPORT DocumentMarker : public GarbageCollected<DocumentMarker> { |
void setEndOffset(unsigned offset) { m_endOffset = offset; } |
void shiftOffsets(int delta); |
- bool operator==(const DocumentMarker& o) const { |
- return type() == o.type() && startOffset() == o.startOffset() && |
- endOffset() == o.endOffset(); |
- } |
+ bool operator==(const DocumentMarker& other) const; |
Xiaocheng
2017/03/29 23:40:11
These comparison methods seem not used at all.
Co
|
- bool operator!=(const DocumentMarker& o) const { return !(*this == o); } |
+ bool operator!=(const DocumentMarker& other) const { |
+ return !(*this == other); |
+ } |
- DECLARE_TRACE(); |
+ DEFINE_INLINE_VIRTUAL_TRACE() {} |
protected: |
DocumentMarker(const DocumentMarker&); |
- DocumentMarker(unsigned startOffset, unsigned endOffset, bool activeMatch); |
+ DocumentMarker(unsigned startOffset, unsigned endOffset); |
private: |
- MarkerType m_type; |
unsigned m_startOffset; |
unsigned m_endOffset; |
- Member<DocumentMarkerDetails> m_details; |
}; |
using DocumentMarkerVector = HeapVector<Member<DocumentMarker>>; |
-inline DocumentMarkerDetails* DocumentMarker::details() const { |
- return m_details.get(); |
-} |
- |
-class DocumentMarkerDetails |
- : public GarbageCollectedFinalized<DocumentMarkerDetails> { |
- public: |
- DocumentMarkerDetails() {} |
- virtual ~DocumentMarkerDetails(); |
- virtual bool isDescription() const { return false; } |
- virtual bool isTextMatch() const { return false; } |
- virtual bool isComposition() const { return false; } |
- |
- DEFINE_INLINE_VIRTUAL_TRACE() {} |
-}; |
- |
} // namespace blink |
#endif // DocumentMarker_h |