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

Side by Side Diff: third_party/WebKit/Source/core/editing/Position.h

Issue 1675163002: Rename ComposedTree to FlatTree (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: wip Created 4 years, 10 months 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2004, 2006, 2008 Apple Inc. All rights reserved. 2 * Copyright (C) 2004, 2006, 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 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 static bool offsetIsBeforeLastNodeOffset(int offset, Node* anchorNode); 165 static bool offsetIsBeforeLastNodeOffset(int offset, Node* anchorNode);
166 static PositionTemplate<Strategy> firstPositionInOrBeforeNode(Node* anchorNo de); 166 static PositionTemplate<Strategy> firstPositionInOrBeforeNode(Node* anchorNo de);
167 static PositionTemplate<Strategy> lastPositionInOrAfterNode(Node* anchorNode ); 167 static PositionTemplate<Strategy> lastPositionInOrAfterNode(Node* anchorNode );
168 168
169 void debugPosition(const char* msg = "") const; 169 void debugPosition(const char* msg = "") const;
170 170
171 #ifndef NDEBUG 171 #ifndef NDEBUG
172 void formatForDebugger(char* buffer, unsigned length) const; 172 void formatForDebugger(char* buffer, unsigned length) const;
173 void showAnchorTypeAndOffset() const; 173 void showAnchorTypeAndOffset() const;
174 void showTreeForThis() const; 174 void showTreeForThis() const;
175 void showTreeForThisInComposedTree() const; 175 void showTreeForThisInFlatTree() const;
176 #endif 176 #endif
177 177
178 DEFINE_INLINE_TRACE() 178 DEFINE_INLINE_TRACE()
179 { 179 {
180 visitor->trace(m_anchorNode); 180 visitor->trace(m_anchorNode);
181 } 181 }
182 182
183 private: 183 private:
184 bool isAfterAnchorOrAfterChildren() const 184 bool isAfterAnchorOrAfterChildren() const
185 { 185 {
186 return isAfterAnchor() || isAfterChildren(); 186 return isAfterAnchor() || isAfterChildren();
187 } 187 }
188 188
189 RefPtrWillBeMember<Node> m_anchorNode; 189 RefPtrWillBeMember<Node> m_anchorNode;
190 // m_offset can be the offset inside m_anchorNode, or if editingIgnoresConte nt(m_anchorNode) 190 // m_offset can be the offset inside m_anchorNode, or if editingIgnoresConte nt(m_anchorNode)
191 // returns true, then other places in editing will treat m_offset == 0 as "b efore the anchor" 191 // returns true, then other places in editing will treat m_offset == 0 as "b efore the anchor"
192 // and m_offset > 0 as "after the anchor node". See parentAnchoredEquivalen t for more info. 192 // and m_offset > 0 as "after the anchor node". See parentAnchoredEquivalen t for more info.
193 int m_offset; 193 int m_offset;
194 PositionAnchorType m_anchorType; 194 PositionAnchorType m_anchorType;
195 }; 195 };
196 196
197 extern template class CORE_EXTERN_TEMPLATE_EXPORT PositionTemplate<EditingStrate gy>; 197 extern template class CORE_EXTERN_TEMPLATE_EXPORT PositionTemplate<EditingStrate gy>;
198 extern template class CORE_EXTERN_TEMPLATE_EXPORT PositionTemplate<EditingInComp osedTreeStrategy>; 198 extern template class CORE_EXTERN_TEMPLATE_EXPORT PositionTemplate<EditingInFlat TreeStrategy>;
199 199
200 using Position = PositionTemplate<EditingStrategy>; 200 using Position = PositionTemplate<EditingStrategy>;
201 using PositionInComposedTree = PositionTemplate<EditingInComposedTreeStrategy>; 201 using PositionInFlatTree = PositionTemplate<EditingInFlatTreeStrategy>;
202 202
203 template <typename Strategy> 203 template <typename Strategy>
204 bool operator==(const PositionTemplate<Strategy>& a, const PositionTemplate<Stra tegy>& b) 204 bool operator==(const PositionTemplate<Strategy>& a, const PositionTemplate<Stra tegy>& b)
205 { 205 {
206 if (a.isNull()) 206 if (a.isNull())
207 return b.isNull(); 207 return b.isNull();
208 208
209 if (a.anchorNode() != b.anchorNode() || a.anchorType() != b.anchorType()) 209 if (a.anchorNode() != b.anchorNode() || a.anchorType() != b.anchorType())
210 return false; 210 return false;
211 211
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
364 } 364 }
365 365
366 template <typename Strategy> 366 template <typename Strategy>
367 PositionTemplate<Strategy> PositionTemplate<Strategy>::lastPositionInOrAfterNode (Node* node) 367 PositionTemplate<Strategy> PositionTemplate<Strategy>::lastPositionInOrAfterNode (Node* node)
368 { 368 {
369 if (!node) 369 if (!node)
370 return PositionTemplate<Strategy>(); 370 return PositionTemplate<Strategy>();
371 return Strategy::editingIgnoresContent(node) ? afterNode(node) : lastPositio nInNode(node); 371 return Strategy::editingIgnoresContent(node) ? afterNode(node) : lastPositio nInNode(node);
372 } 372 }
373 373
374 CORE_EXPORT PositionInComposedTree toPositionInComposedTree(const Position&); 374 CORE_EXPORT PositionInFlatTree toPositionInFlatTree(const Position&);
375 CORE_EXPORT Position toPositionInDOMTree(const Position&); 375 CORE_EXPORT Position toPositionInDOMTree(const Position&);
376 CORE_EXPORT Position toPositionInDOMTree(const PositionInComposedTree&); 376 CORE_EXPORT Position toPositionInDOMTree(const PositionInFlatTree&);
377 377
378 template <typename Strategy> 378 template <typename Strategy>
379 PositionTemplate<Strategy> fromPositionInDOMTree(const Position&); 379 PositionTemplate<Strategy> fromPositionInDOMTree(const Position&);
380 380
381 template <> 381 template <>
382 inline Position fromPositionInDOMTree<EditingStrategy>(const Position& position) 382 inline Position fromPositionInDOMTree<EditingStrategy>(const Position& position)
383 { 383 {
384 return position; 384 return position;
385 } 385 }
386 386
387 template <> 387 template <>
388 inline PositionInComposedTree fromPositionInDOMTree<EditingInComposedTreeStrateg y>(const Position& position) 388 inline PositionInFlatTree fromPositionInDOMTree<EditingInFlatTreeStrategy>(const Position& position)
389 { 389 {
390 return toPositionInComposedTree(position); 390 return toPositionInFlatTree(position);
391 } 391 }
392 392
393 // These printers are available only for testing in "webkit_unit_tests", and 393 // These printers are available only for testing in "webkit_unit_tests", and
394 // implemented in "core/testing/CoreTestPrinters.cpp". 394 // implemented in "core/testing/CoreTestPrinters.cpp".
395 std::ostream& operator<<(std::ostream&, const Node&); 395 std::ostream& operator<<(std::ostream&, const Node&);
396 std::ostream& operator<<(std::ostream&, const Node*); 396 std::ostream& operator<<(std::ostream&, const Node*);
397 397
398 std::ostream& operator<<(std::ostream&, PositionAnchorType); 398 std::ostream& operator<<(std::ostream&, PositionAnchorType);
399 std::ostream& operator<<(std::ostream&, const Position&); 399 std::ostream& operator<<(std::ostream&, const Position&);
400 std::ostream& operator<<(std::ostream&, const PositionInComposedTree&); 400 std::ostream& operator<<(std::ostream&, const PositionInFlatTree&);
401 401
402 } // namespace blink 402 } // namespace blink
403 403
404 #ifndef NDEBUG 404 #ifndef NDEBUG
405 // Outside the WebCore namespace for ease of invocation from gdb. 405 // Outside the WebCore namespace for ease of invocation from gdb.
406 void showTree(const blink::Position&); 406 void showTree(const blink::Position&);
407 void showTree(const blink::Position*); 407 void showTree(const blink::Position*);
408 #endif 408 #endif
409 409
410 #endif // Position_h 410 #endif // Position_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698