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

Side by Side Diff: Source/core/editing/TextIterator.h

Issue 443433003: Use tighter typing in editing: SimplifyMarkupCommand & TextIterator (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 4 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 | Annotate | Revision Log
« no previous file with comments | « Source/core/editing/TextInsertionBaseCommand.cpp ('k') | Source/core/editing/TextIterator.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2004, 2006, 2009 Apple Inc. All rights reserved. 2 * Copyright (C) 2004, 2006, 2009 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 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
135 bool shouldRepresentNodeOffsetZero(); 135 bool shouldRepresentNodeOffsetZero();
136 bool shouldEmitSpaceBeforeAndAfterNode(Node*); 136 bool shouldEmitSpaceBeforeAndAfterNode(Node*);
137 void representNodeOffsetZero(); 137 void representNodeOffsetZero();
138 bool handleTextNode(); 138 bool handleTextNode();
139 bool handleReplacedElement(); 139 bool handleReplacedElement();
140 bool handleNonTextNode(); 140 bool handleNonTextNode();
141 void handleTextBox(); 141 void handleTextBox();
142 void handleTextNodeFirstLetter(RenderTextFragment*); 142 void handleTextNodeFirstLetter(RenderTextFragment*);
143 bool hasVisibleTextNode(RenderText*); 143 bool hasVisibleTextNode(RenderText*);
144 void emitCharacter(UChar, Node* textNode, Node* offsetBaseNode, int textStar tOffset, int textEndOffset); 144 void emitCharacter(UChar, Node* textNode, Node* offsetBaseNode, int textStar tOffset, int textEndOffset);
145 void emitText(Node* textNode, RenderObject* renderObject, int textStartOffse t, int textEndOffset); 145 void emitText(Node* textNode, RenderText* renderer, int textStartOffset, int textEndOffset);
146 void emitText(Node* textNode, int textStartOffset, int textEndOffset);
147 146
148 // Current position, not necessarily of the text being returned, but positio n 147 // Current position, not necessarily of the text being returned, but positio n
149 // as we walk through the DOM tree. 148 // as we walk through the DOM tree.
150 RawPtrWillBeMember<Node> m_node; 149 RawPtrWillBeMember<Node> m_node;
151 int m_offset; 150 int m_offset;
152 IterationProgress m_iterationProgress; 151 IterationProgress m_iterationProgress;
153 BitStack m_fullyClippedStack; 152 BitStack m_fullyClippedStack;
154 int m_shadowDepth; 153 int m_shadowDepth;
155 154
156 // The range. 155 // The range.
(...skipping 15 matching lines...) Expand all
172 // are false and 0, we go back to normal iterating. 171 // are false and 0, we go back to normal iterating.
173 bool m_needsAnotherNewline; 172 bool m_needsAnotherNewline;
174 InlineTextBox* m_textBox; 173 InlineTextBox* m_textBox;
175 // Used when iteration over :first-letter text to save pointer to 174 // Used when iteration over :first-letter text to save pointer to
176 // remaining text box. 175 // remaining text box.
177 InlineTextBox* m_remainingTextBox; 176 InlineTextBox* m_remainingTextBox;
178 // Used to point to RenderText object for :first-letter. 177 // Used to point to RenderText object for :first-letter.
179 RenderText *m_firstLetterText; 178 RenderText *m_firstLetterText;
180 179
181 // Used to do the whitespace collapsing logic. 180 // Used to do the whitespace collapsing logic.
182 RawPtrWillBeMember<Node> m_lastTextNode; 181 RawPtrWillBeMember<Text> m_lastTextNode;
183 bool m_lastTextNodeEndedWithCollapsedSpace; 182 bool m_lastTextNodeEndedWithCollapsedSpace;
184 UChar m_lastCharacter; 183 UChar m_lastCharacter;
185 184
186 // Used for whitespace characters that aren't in the DOM, so we can point at them. 185 // Used for whitespace characters that aren't in the DOM, so we can point at them.
187 // If non-zero, overrides m_text. 186 // If non-zero, overrides m_text.
188 UChar m_singleCharacterBuffer; 187 UChar m_singleCharacterBuffer;
189 188
190 // Used when text boxes are out of order (Hebrew/Arabic w/ embeded LTR text) 189 // Used when text boxes are out of order (Hebrew/Arabic w/ embeded LTR text)
191 Vector<InlineTextBox*> m_sortedTextBoxes; 190 Vector<InlineTextBox*> m_sortedTextBoxes;
192 size_t m_sortedTextBoxesPosition; 191 size_t m_sortedTextBoxesPosition;
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 // The current text and its position, in the form to be returned from the it erator. 273 // The current text and its position, in the form to be returned from the it erator.
275 RawPtrWillBeMember<Node> m_positionNode; 274 RawPtrWillBeMember<Node> m_positionNode;
276 int m_positionStartOffset; 275 int m_positionStartOffset;
277 int m_positionEndOffset; 276 int m_positionEndOffset;
278 277
279 String m_textContainer; // We're interested in the range [m_textOffset, m_te xtOffset + m_textLength) of m_textContainer. 278 String m_textContainer; // We're interested in the range [m_textOffset, m_te xtOffset + m_textLength) of m_textContainer.
280 int m_textOffset; 279 int m_textOffset;
281 int m_textLength; 280 int m_textLength;
282 281
283 // Used to do the whitespace logic. 282 // Used to do the whitespace logic.
284 RawPtrWillBeMember<Node> m_lastTextNode; 283 RawPtrWillBeMember<Text> m_lastTextNode;
285 UChar m_lastCharacter; 284 UChar m_lastCharacter;
286 285
287 // Used for whitespace characters that aren't in the DOM, so we can point at them. 286 // Used for whitespace characters that aren't in the DOM, so we can point at them.
288 UChar m_singleCharacterBuffer; 287 UChar m_singleCharacterBuffer;
289 288
290 // Whether m_node has advanced beyond the iteration range (i.e. m_startNode) . 289 // Whether m_node has advanced beyond the iteration range (i.e. m_startNode) .
291 bool m_havePassedStartNode; 290 bool m_havePassedStartNode;
292 291
293 // Should handle first-letter renderer in the next call to handleTextNode. 292 // Should handle first-letter renderer in the next call to handleTextNode.
294 bool m_shouldHandleFirstLetter; 293 bool m_shouldHandleFirstLetter;
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
373 Vector<UChar> m_buffer; 372 Vector<UChar> m_buffer;
374 // Did we have to look ahead in the textIterator to confirm the current chun k? 373 // Did we have to look ahead in the textIterator to confirm the current chun k?
375 bool m_didLookAhead; 374 bool m_didLookAhead;
376 RefPtrWillBeMember<Range> m_range; 375 RefPtrWillBeMember<Range> m_range;
377 TextIterator m_textIterator; 376 TextIterator m_textIterator;
378 }; 377 };
379 378
380 } 379 }
381 380
382 #endif 381 #endif
OLDNEW
« no previous file with comments | « Source/core/editing/TextInsertionBaseCommand.cpp ('k') | Source/core/editing/TextIterator.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698