OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2004, 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2004, 2008 Apple Inc. 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 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
64 // |def DOWNSTREAM |VisiblePosition| | 64 // |def DOWNSTREAM |VisiblePosition| |
65 // | 65 // |
66 // NOTE: UPSTREAM affinity will be used only if pos is at end of a wrapped line, | 66 // NOTE: UPSTREAM affinity will be used only if pos is at end of a wrapped line, |
67 // otherwise it will be converted to DOWNSTREAM. | 67 // otherwise it will be converted to DOWNSTREAM. |
68 template <typename Strategy> | 68 template <typename Strategy> |
69 class CORE_TEMPLATE_CLASS_EXPORT VisiblePositionTemplate final { | 69 class CORE_TEMPLATE_CLASS_EXPORT VisiblePositionTemplate final { |
70 DISALLOW_NEW(); | 70 DISALLOW_NEW(); |
71 public: | 71 public: |
72 VisiblePositionTemplate(); | 72 VisiblePositionTemplate(); |
73 | 73 |
74 // Node: Other than |createVisiblePosition()|, we should not use | 74 // Node: Other than |createVisiblePosition()| and |
75 // |create()|. | 75 // |createVisiblePositionDeprecated()|, we should not use |create()|. |
76 static VisiblePositionTemplate create(const PositionWithAffinityTemplate<Str
ategy>&); | 76 static VisiblePositionTemplate create(const PositionWithAffinityTemplate<Str
ategy>&); |
77 | 77 |
78 // Intentionally delete |operator==()| and |operator!=()| for reducing | 78 // Intentionally delete |operator==()| and |operator!=()| for reducing |
79 // compilation error message. | 79 // compilation error message. |
80 // TODO(yosin) We'll have |equals()| when we have use cases of checking | 80 // TODO(yosin) We'll have |equals()| when we have use cases of checking |
81 // equality of both position and affinity. | 81 // equality of both position and affinity. |
82 bool operator==(const VisiblePositionTemplate&) const = delete; | 82 bool operator==(const VisiblePositionTemplate&) const = delete; |
83 bool operator!=(const VisiblePositionTemplate&) const = delete; | 83 bool operator!=(const VisiblePositionTemplate&) const = delete; |
84 | 84 |
85 bool isNull() const { return m_positionWithAffinity.isNull(); } | 85 bool isNull() const { return m_positionWithAffinity.isNull(); } |
(...skipping 26 matching lines...) Expand all Loading... |
112 | 112 |
113 PositionWithAffinityTemplate<Strategy> m_positionWithAffinity; | 113 PositionWithAffinityTemplate<Strategy> m_positionWithAffinity; |
114 }; | 114 }; |
115 | 115 |
116 extern template class CORE_EXTERN_TEMPLATE_EXPORT VisiblePositionTemplate<Editin
gStrategy>; | 116 extern template class CORE_EXTERN_TEMPLATE_EXPORT VisiblePositionTemplate<Editin
gStrategy>; |
117 extern template class CORE_EXTERN_TEMPLATE_EXPORT VisiblePositionTemplate<Editin
gInFlatTreeStrategy>; | 117 extern template class CORE_EXTERN_TEMPLATE_EXPORT VisiblePositionTemplate<Editin
gInFlatTreeStrategy>; |
118 | 118 |
119 using VisiblePosition = VisiblePositionTemplate<EditingStrategy>; | 119 using VisiblePosition = VisiblePositionTemplate<EditingStrategy>; |
120 using VisiblePositionInFlatTree = VisiblePositionTemplate<EditingInFlatTreeStrat
egy>; | 120 using VisiblePositionInFlatTree = VisiblePositionTemplate<EditingInFlatTreeStrat
egy>; |
121 | 121 |
| 122 // |createVisiblePositionDeprecated| updates layout before creating the |
| 123 // VisiblePosition, which messes up the rendering pipeline. The callers should |
| 124 // ensure clean layout by themselves and call |createVisiblePosition| instead. |
| 125 CORE_EXPORT VisiblePosition createVisiblePositionDeprecated(const Position&, Tex
tAffinity = VP_DEFAULT_AFFINITY); |
| 126 CORE_EXPORT VisiblePosition createVisiblePositionDeprecated(const PositionWithAf
finity&); |
| 127 CORE_EXPORT VisiblePositionInFlatTree createVisiblePositionDeprecated(const Posi
tionInFlatTree&, TextAffinity = VP_DEFAULT_AFFINITY); |
| 128 CORE_EXPORT VisiblePositionInFlatTree createVisiblePositionDeprecated(const Posi
tionInFlatTreeWithAffinity&); |
| 129 |
122 CORE_EXPORT VisiblePosition createVisiblePosition(const Position&, TextAffinity
= VP_DEFAULT_AFFINITY); | 130 CORE_EXPORT VisiblePosition createVisiblePosition(const Position&, TextAffinity
= VP_DEFAULT_AFFINITY); |
123 CORE_EXPORT VisiblePosition createVisiblePosition(const PositionWithAffinity&); | 131 CORE_EXPORT VisiblePosition createVisiblePosition(const PositionWithAffinity&); |
124 CORE_EXPORT VisiblePositionInFlatTree createVisiblePosition(const PositionInFlat
Tree&, TextAffinity = VP_DEFAULT_AFFINITY); | 132 CORE_EXPORT VisiblePositionInFlatTree createVisiblePosition(const PositionInFlat
Tree&, TextAffinity = VP_DEFAULT_AFFINITY); |
125 CORE_EXPORT VisiblePositionInFlatTree createVisiblePosition(const PositionInFlat
TreeWithAffinity&); | 133 CORE_EXPORT VisiblePositionInFlatTree createVisiblePosition(const PositionInFlat
TreeWithAffinity&); |
126 | 134 |
127 CORE_EXPORT std::ostream& operator<<(std::ostream&, const VisiblePosition&); | 135 CORE_EXPORT std::ostream& operator<<(std::ostream&, const VisiblePosition&); |
128 CORE_EXPORT std::ostream& operator<<(std::ostream&, const VisiblePositionInFlatT
ree&); | 136 CORE_EXPORT std::ostream& operator<<(std::ostream&, const VisiblePositionInFlatT
ree&); |
129 | 137 |
130 } // namespace blink | 138 } // namespace blink |
131 | 139 |
132 #ifndef NDEBUG | 140 #ifndef NDEBUG |
133 // Outside the WebCore namespace for ease of invocation from gdb. | 141 // Outside the WebCore namespace for ease of invocation from gdb. |
134 void showTree(const blink::VisiblePosition*); | 142 void showTree(const blink::VisiblePosition*); |
135 void showTree(const blink::VisiblePosition&); | 143 void showTree(const blink::VisiblePosition&); |
136 #endif | 144 #endif |
137 | 145 |
138 #endif // VisiblePosition_h | 146 #endif // VisiblePosition_h |
OLD | NEW |