Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #ifndef DocumentMarkerList_h | |
| 6 #define DocumentMarkerList_h | |
| 7 | |
| 8 #include "core/editing/markers/DocumentMarker.h" | |
| 9 #include "platform/heap/Handle.h" | |
| 10 | |
| 11 namespace blink { | |
| 12 | |
| 13 class CORE_EXPORT DocumentMarkerList | |
| 14 : public GarbageCollectedFinalized<DocumentMarkerList> { | |
|
Xiaocheng
2017/04/07 00:06:33
Should interfaces be on-heap?
I guess not.
rlanday
2017/04/07 18:22:56
The subclasses need to inherit from GarbageCollect
| |
| 15 public: | |
| 16 DocumentMarkerList(); | |
|
Xiaocheng
2017/04/07 00:06:33
Since the class is purely virtual, can we get rid
rlanday
2017/04/07 18:22:55
The constructor is needed because DISALLOW_COPY_AN
| |
| 17 using iterator = Member<DocumentMarker>*; | |
| 18 using const_iterator = const Member<DocumentMarker>*; | |
| 19 | |
| 20 virtual ~DocumentMarkerList(); | |
| 21 | |
| 22 virtual DocumentMarker::MarkerType allowedMarkerType() const = 0; | |
|
Xiaocheng
2017/04/07 00:06:33
allowedMarkerType() and isFooMarkerList() are kind
rlanday
2017/04/07 18:22:55
Ok. The reason I thought it might be nice to have
| |
| 23 virtual bool isCompositionMarkerList() const; | |
|
yosin_UTC9
2017/04/07 03:16:22
Having type predicate indicates that the design of
| |
| 24 virtual bool isSpellCheckMarkerList() const; | |
| 25 virtual bool isTextMatchMarkerList() const; | |
| 26 | |
| 27 virtual size_t size() const = 0; | |
|
yosin_UTC9
2017/04/07 03:16:22
Do we really need to expose |size()|?
rlanday
2017/04/07 18:22:56
It looks like we don't need it in the refactored v
rlanday
2017/04/07 18:22:56
It looks like we don't need it in the refactored v
| |
| 28 virtual bool empty() const = 0; | |
| 29 virtual DocumentMarker* at(size_t index) = 0; | |
| 30 | |
| 31 virtual void add(DocumentMarker*) = 0; | |
| 32 virtual void clear() = 0; | |
| 33 | |
| 34 virtual iterator begin() = 0; | |
|
yosin_UTC9
2017/04/07 03:16:22
We should avoid to expose iterator.
| |
| 35 virtual iterator end() = 0; | |
| 36 virtual const_iterator begin() const = 0; | |
| 37 virtual const_iterator end() const = 0; | |
| 38 | |
| 39 virtual void appendMarkersToInputList(DocumentMarkerVector* list) const = 0; | |
| 40 | |
| 41 enum class DidCopyMarkerOrNot { DidNotCopyMarker, DidCopyMarker }; | |
| 42 virtual DidCopyMarkerOrNot copyMarkers(unsigned startOffset, | |
| 43 int length, | |
| 44 DocumentMarkerList* dstList, | |
| 45 int delta) = 0; | |
| 46 | |
| 47 enum class DidRemoveMarkerOrNot { DidNotRemoveMarker, DidRemoveMarker }; | |
| 48 virtual DidRemoveMarkerOrNot removeMarkers( | |
| 49 unsigned startOffset, | |
| 50 int length, | |
| 51 bool shouldRemovePartiallyOverlappingMarkers) = 0; | |
| 52 | |
| 53 enum class DidShiftMarkerOrNot { DidNotShiftMarker, DidShiftMarker }; | |
| 54 virtual DidShiftMarkerOrNot shiftMarkers(unsigned offset, | |
| 55 unsigned oldLength, | |
| 56 unsigned newLength) = 0; | |
| 57 | |
| 58 DEFINE_INLINE_VIRTUAL_TRACE() {} | |
| 59 DISALLOW_COPY_AND_ASSIGN(DocumentMarkerList); | |
| 60 }; | |
| 61 | |
| 62 } // namespace blink | |
| 63 | |
| 64 #endif // DocumentMarkerList_h | |
| OLD | NEW |