OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv
ed. | 2 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv
ed. |
3 * Portions Copyright (c) 2011 Motorola Mobility, Inc. All rights reserved. | 3 * Portions Copyright (c) 2011 Motorola Mobility, Inc. All rights reserved. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
7 * are met: | 7 * are met: |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
42 #include "wtf/text/CString.h" | 42 #include "wtf/text/CString.h" |
43 | 43 |
44 #ifndef NDEBUG | 44 #ifndef NDEBUG |
45 #include <stdio.h> | 45 #include <stdio.h> |
46 #endif | 46 #endif |
47 | 47 |
48 namespace blink { | 48 namespace blink { |
49 | 49 |
50 using namespace HTMLNames; | 50 using namespace HTMLNames; |
51 | 51 |
52 VisiblePosition::VisiblePosition(const Position& position, TextAffinity affinity
) | 52 VisiblePosition::VisiblePosition() |
53 { | 53 { |
54 // TODO(yosin) We should make |VisiblePosition| private and make this | 54 } |
55 // constructor to populate member variables by using |createVisiblePosition(
)|. | 55 |
56 *this = createVisiblePosition(position, affinity); | 56 VisiblePosition::VisiblePosition(const PositionWithAffinity& positionWithAffinit
y) |
| 57 : m_positionWithAffinity(positionWithAffinity) |
| 58 { |
57 } | 59 } |
58 | 60 |
59 VisiblePosition VisiblePosition::createWithoutCanonicalization(const PositionWit
hAffinity& canonicalized) | 61 VisiblePosition VisiblePosition::createWithoutCanonicalization(const PositionWit
hAffinity& canonicalized) |
60 { | 62 { |
61 VisiblePosition visiblePosition; | 63 return VisiblePosition(canonicalized); |
62 visiblePosition.m_deepPosition = canonicalized.position(); | |
63 visiblePosition.m_affinity = canonicalized.affinity(); | |
64 return visiblePosition; | |
65 } | 64 } |
66 | 65 |
67 template <typename Strategy> | 66 template <typename Strategy> |
68 PositionWithAffinityTemplate<Strategy> honorEditingBoundaryAtOrBeforeAlgorithm(c
onst PositionWithAffinityTemplate<Strategy>& pos, const PositionAlgorithm<Strate
gy>& anchor) | 67 PositionWithAffinityTemplate<Strategy> honorEditingBoundaryAtOrBeforeAlgorithm(c
onst PositionWithAffinityTemplate<Strategy>& pos, const PositionAlgorithm<Strate
gy>& anchor) |
69 { | 68 { |
70 if (pos.isNull()) | 69 if (pos.isNull()) |
71 return pos; | 70 return pos; |
72 | 71 |
73 ContainerNode* highestRoot = highestEditableRoot(anchor); | 72 ContainerNode* highestRoot = highestEditableRoot(anchor); |
74 | 73 |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
165 } | 164 } |
166 | 165 |
167 #ifndef NDEBUG | 166 #ifndef NDEBUG |
168 | 167 |
169 void VisiblePosition::debugPosition(const char* msg) const | 168 void VisiblePosition::debugPosition(const char* msg) const |
170 { | 169 { |
171 if (isNull()) { | 170 if (isNull()) { |
172 fprintf(stderr, "Position [%s]: null\n", msg); | 171 fprintf(stderr, "Position [%s]: null\n", msg); |
173 return; | 172 return; |
174 } | 173 } |
175 m_deepPosition.debugPosition(msg); | 174 deepEquivalent().debugPosition(msg); |
176 } | 175 } |
177 | 176 |
178 void VisiblePosition::formatForDebugger(char* buffer, unsigned length) const | 177 void VisiblePosition::formatForDebugger(char* buffer, unsigned length) const |
179 { | 178 { |
180 m_deepPosition.formatForDebugger(buffer, length); | 179 deepEquivalent().formatForDebugger(buffer, length); |
181 } | 180 } |
182 | 181 |
183 void VisiblePosition::showTreeForThis() const | 182 void VisiblePosition::showTreeForThis() const |
184 { | 183 { |
185 m_deepPosition.showTreeForThis(); | 184 deepEquivalent().showTreeForThis(); |
186 } | 185 } |
187 | 186 |
188 #endif | 187 #endif |
189 | 188 |
190 DEFINE_TRACE(VisiblePosition) | 189 DEFINE_TRACE(VisiblePosition) |
191 { | 190 { |
192 visitor->trace(m_deepPosition); | 191 visitor->trace(m_positionWithAffinity); |
193 } | 192 } |
194 | 193 |
195 } // namespace blink | 194 } // namespace blink |
196 | 195 |
197 #ifndef NDEBUG | 196 #ifndef NDEBUG |
198 | 197 |
199 void showTree(const blink::VisiblePosition* vpos) | 198 void showTree(const blink::VisiblePosition* vpos) |
200 { | 199 { |
201 if (vpos) | 200 if (vpos) |
202 vpos->showTreeForThis(); | 201 vpos->showTreeForThis(); |
203 else | 202 else |
204 fprintf(stderr, "Cannot showTree for (nil) VisiblePosition.\n"); | 203 fprintf(stderr, "Cannot showTree for (nil) VisiblePosition.\n"); |
205 } | 204 } |
206 | 205 |
207 void showTree(const blink::VisiblePosition& vpos) | 206 void showTree(const blink::VisiblePosition& vpos) |
208 { | 207 { |
209 vpos.showTreeForThis(); | 208 vpos.showTreeForThis(); |
210 } | 209 } |
211 | 210 |
212 #endif | 211 #endif |
OLD | NEW |