| OLD | NEW |
| 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 27 matching lines...) Expand all Loading... |
| 38 | 38 |
| 39 namespace blink { | 39 namespace blink { |
| 40 | 40 |
| 41 class Element; | 41 class Element; |
| 42 class Node; | 42 class Node; |
| 43 class LayoutObject; | 43 class LayoutObject; |
| 44 class Text; | 44 class Text; |
| 45 enum class TextAffinity; | 45 enum class TextAffinity; |
| 46 class TreeScope; | 46 class TreeScope; |
| 47 | 47 |
| 48 enum class PositionMoveType { | |
| 49 CodePoint, // Move by a single code point. | |
| 50 Character, // Move to the next Unicode character break. | |
| 51 BackwardDeletion // Subject to platform conventions. | |
| 52 }; | |
| 53 | |
| 54 enum class PositionAnchorType : unsigned { | 48 enum class PositionAnchorType : unsigned { |
| 55 OffsetInAnchor, | 49 OffsetInAnchor, |
| 56 BeforeAnchor, | 50 BeforeAnchor, |
| 57 AfterAnchor, | 51 AfterAnchor, |
| 58 BeforeChildren, | 52 BeforeChildren, |
| 59 AfterChildren, | 53 AfterChildren, |
| 60 }; | 54 }; |
| 61 | 55 |
| 62 // Instances of |PositionAlgorithm<Strategy>| are immutable. | 56 // Instances of |PositionAlgorithm<Strategy>| are immutable. |
| 63 template <typename Strategy> | 57 template <typename Strategy> |
| (...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 389 { | 383 { |
| 390 return position; | 384 return position; |
| 391 } | 385 } |
| 392 | 386 |
| 393 template <> | 387 template <> |
| 394 inline PositionInComposedTree fromPositionInDOMTree<EditingInComposedTreeStrateg
y>(const Position& position) | 388 inline PositionInComposedTree fromPositionInDOMTree<EditingInComposedTreeStrateg
y>(const Position& position) |
| 395 { | 389 { |
| 396 return toPositionInComposedTree(position); | 390 return toPositionInComposedTree(position); |
| 397 } | 391 } |
| 398 | 392 |
| 399 // TODO(yosin) We should move |previousPositionOf()| and |nextPositionOf()| | |
| 400 // to "EditingUtilities.h" with |uncheckedPreviousOffset()| and | |
| 401 // |uncheckedNextOffset()|. | |
| 402 // Move up or down the DOM by one position. | |
| 403 // Offsets are computed using layout text for nodes that have layoutObjects - | |
| 404 // but note that even when using composed characters, the result may be inside | |
| 405 // a single user-visible character if a ligature is formed. | |
| 406 CORE_EXPORT Position previousPositionOf(const Position&, PositionMoveType); | |
| 407 CORE_EXPORT Position nextPositionOf(const Position&, PositionMoveType); | |
| 408 CORE_EXPORT PositionInComposedTree previousPositionOf(const PositionInComposedTr
ee&, PositionMoveType); | |
| 409 CORE_EXPORT PositionInComposedTree nextPositionOf(const PositionInComposedTree&,
PositionMoveType); | |
| 410 | |
| 411 CORE_EXPORT int uncheckedPreviousOffset(const Node*, int current); | |
| 412 CORE_EXPORT int uncheckedNextOffset(const Node*, int current); | |
| 413 | |
| 414 } // namespace blink | 393 } // namespace blink |
| 415 | 394 |
| 416 #ifndef NDEBUG | 395 #ifndef NDEBUG |
| 417 // Outside the WebCore namespace for ease of invocation from gdb. | 396 // Outside the WebCore namespace for ease of invocation from gdb. |
| 418 void showTree(const blink::Position&); | 397 void showTree(const blink::Position&); |
| 419 void showTree(const blink::Position*); | 398 void showTree(const blink::Position*); |
| 420 #endif | 399 #endif |
| 421 | 400 |
| 422 #endif // Position_h | 401 #endif // Position_h |
| OLD | NEW |