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

Side by Side Diff: third_party/WebKit/Source/core/editing/SelectionModifier.cpp

Issue 2614883007: Change computed style enums to be prefixed with 'k'. (Closed)
Patch Set: Rebase on ToT. Created 3 years, 11 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, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights 2 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights
3 * reserved. 3 * 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 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 // selection. This only matters for cases where base and extend point to 93 // selection. This only matters for cases where base and extend point to
94 // different positions than start and end (e.g. after a double-click to 94 // different positions than start and end (e.g. after a double-click to
95 // select a word). 95 // select a word).
96 if (m_selection.isBaseFirst()) 96 if (m_selection.isBaseFirst())
97 baseIsStart = true; 97 baseIsStart = true;
98 else 98 else
99 baseIsStart = false; 99 baseIsStart = false;
100 } else { 100 } else {
101 switch (direction) { 101 switch (direction) {
102 case DirectionRight: 102 case DirectionRight:
103 if (directionOfSelection() == TextDirection::Ltr) 103 if (directionOfSelection() == TextDirection::kLtr)
104 baseIsStart = true; 104 baseIsStart = true;
105 else 105 else
106 baseIsStart = false; 106 baseIsStart = false;
107 break; 107 break;
108 case DirectionForward: 108 case DirectionForward:
109 baseIsStart = true; 109 baseIsStart = true;
110 break; 110 break;
111 case DirectionLeft: 111 case DirectionLeft:
112 if (directionOfSelection() == TextDirection::Ltr) 112 if (directionOfSelection() == TextDirection::kLtr)
113 baseIsStart = false; 113 baseIsStart = false;
114 else 114 else
115 baseIsStart = true; 115 baseIsStart = true;
116 break; 116 break;
117 case DirectionBackward: 117 case DirectionBackward:
118 baseIsStart = false; 118 baseIsStart = false;
119 break; 119 break;
120 } 120 }
121 } 121 }
122 if (baseIsStart) { 122 if (baseIsStart) {
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
195 createVisiblePosition(m_selection.extent(), m_selection.affinity()); 195 createVisiblePosition(m_selection.extent(), m_selection.affinity());
196 196
197 // The difference between modifyExtendingRight and modifyExtendingForward is: 197 // The difference between modifyExtendingRight and modifyExtendingForward is:
198 // modifyExtendingForward always extends forward logically. 198 // modifyExtendingForward always extends forward logically.
199 // modifyExtendingRight behaves the same as modifyExtendingForward except for 199 // modifyExtendingRight behaves the same as modifyExtendingForward except for
200 // extending character or word, it extends forward logically if the enclosing 200 // extending character or word, it extends forward logically if the enclosing
201 // block is LTR direction, but it extends backward logically if the enclosing 201 // block is LTR direction, but it extends backward logically if the enclosing
202 // block is RTL direction. 202 // block is RTL direction.
203 switch (granularity) { 203 switch (granularity) {
204 case CharacterGranularity: 204 case CharacterGranularity:
205 if (directionOfEnclosingBlock() == TextDirection::Ltr) 205 if (directionOfEnclosingBlock() == TextDirection::kLtr)
206 pos = nextPositionOf(pos, CanSkipOverEditingBoundary); 206 pos = nextPositionOf(pos, CanSkipOverEditingBoundary);
207 else 207 else
208 pos = previousPositionOf(pos, CanSkipOverEditingBoundary); 208 pos = previousPositionOf(pos, CanSkipOverEditingBoundary);
209 break; 209 break;
210 case WordGranularity: 210 case WordGranularity:
211 if (directionOfEnclosingBlock() == TextDirection::Ltr) 211 if (directionOfEnclosingBlock() == TextDirection::kLtr)
212 pos = nextWordPositionForPlatform(pos); 212 pos = nextWordPositionForPlatform(pos);
213 else 213 else
214 pos = previousWordPosition(pos); 214 pos = previousWordPosition(pos);
215 break; 215 break;
216 case LineBoundary: 216 case LineBoundary:
217 if (directionOfEnclosingBlock() == TextDirection::Ltr) 217 if (directionOfEnclosingBlock() == TextDirection::kLtr)
218 pos = modifyExtendingForward(granularity); 218 pos = modifyExtendingForward(granularity);
219 else 219 else
220 pos = modifyExtendingBackward(granularity); 220 pos = modifyExtendingBackward(granularity);
221 break; 221 break;
222 case SentenceGranularity: 222 case SentenceGranularity:
223 case LineGranularity: 223 case LineGranularity:
224 case ParagraphGranularity: 224 case ParagraphGranularity:
225 case SentenceBoundary: 225 case SentenceBoundary:
226 case ParagraphBoundary: 226 case ParagraphBoundary:
227 case DocumentBoundary: 227 case DocumentBoundary:
228 // FIXME: implement all of the above? 228 // FIXME: implement all of the above?
229 pos = modifyExtendingForward(granularity); 229 pos = modifyExtendingForward(granularity);
230 break; 230 break;
231 } 231 }
232 adjustPositionForUserSelectAll( 232 adjustPositionForUserSelectAll(
233 pos, directionOfEnclosingBlock() == TextDirection::Ltr); 233 pos, directionOfEnclosingBlock() == TextDirection::kLtr);
234 return pos; 234 return pos;
235 } 235 }
236 236
237 VisiblePosition SelectionModifier::modifyExtendingForward( 237 VisiblePosition SelectionModifier::modifyExtendingForward(
238 TextGranularity granularity) { 238 TextGranularity granularity) {
239 VisiblePosition pos = 239 VisiblePosition pos =
240 createVisiblePosition(m_selection.extent(), m_selection.affinity()); 240 createVisiblePosition(m_selection.extent(), m_selection.affinity());
241 switch (granularity) { 241 switch (granularity) {
242 case CharacterGranularity: 242 case CharacterGranularity:
243 pos = nextPositionOf(pos, CanSkipOverEditingBoundary); 243 pos = nextPositionOf(pos, CanSkipOverEditingBoundary);
(...skipping 23 matching lines...) Expand all
267 break; 267 break;
268 case DocumentBoundary: 268 case DocumentBoundary:
269 pos = endForPlatform(); 269 pos = endForPlatform();
270 if (isEditablePosition(pos.deepEquivalent())) 270 if (isEditablePosition(pos.deepEquivalent()))
271 pos = endOfEditableContent(pos); 271 pos = endOfEditableContent(pos);
272 else 272 else
273 pos = endOfDocument(pos); 273 pos = endOfDocument(pos);
274 break; 274 break;
275 } 275 }
276 adjustPositionForUserSelectAll( 276 adjustPositionForUserSelectAll(
277 pos, directionOfEnclosingBlock() == TextDirection::Ltr); 277 pos, directionOfEnclosingBlock() == TextDirection::kLtr);
278 return pos; 278 return pos;
279 } 279 }
280 280
281 VisiblePosition SelectionModifier::modifyMovingRight( 281 VisiblePosition SelectionModifier::modifyMovingRight(
282 TextGranularity granularity) { 282 TextGranularity granularity) {
283 VisiblePosition pos; 283 VisiblePosition pos;
284 switch (granularity) { 284 switch (granularity) {
285 case CharacterGranularity: 285 case CharacterGranularity:
286 if (m_selection.isRange()) { 286 if (m_selection.isRange()) {
287 if (directionOfSelection() == TextDirection::Ltr) 287 if (directionOfSelection() == TextDirection::kLtr)
288 pos = 288 pos =
289 createVisiblePosition(m_selection.end(), m_selection.affinity()); 289 createVisiblePosition(m_selection.end(), m_selection.affinity());
290 else 290 else
291 pos = createVisiblePosition(m_selection.start(), 291 pos = createVisiblePosition(m_selection.start(),
292 m_selection.affinity()); 292 m_selection.affinity());
293 } else { 293 } else {
294 pos = rightPositionOf(createVisiblePosition(m_selection.extent(), 294 pos = rightPositionOf(createVisiblePosition(m_selection.extent(),
295 m_selection.affinity())); 295 m_selection.affinity()));
296 } 296 }
297 break; 297 break;
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
383 createVisiblePosition(m_selection.extent(), m_selection.affinity()); 383 createVisiblePosition(m_selection.extent(), m_selection.affinity());
384 384
385 // The difference between modifyExtendingLeft and modifyExtendingBackward is: 385 // The difference between modifyExtendingLeft and modifyExtendingBackward is:
386 // modifyExtendingBackward always extends backward logically. 386 // modifyExtendingBackward always extends backward logically.
387 // modifyExtendingLeft behaves the same as modifyExtendingBackward except for 387 // modifyExtendingLeft behaves the same as modifyExtendingBackward except for
388 // extending character or word, it extends backward logically if the enclosing 388 // extending character or word, it extends backward logically if the enclosing
389 // block is LTR direction, but it extends forward logically if the enclosing 389 // block is LTR direction, but it extends forward logically if the enclosing
390 // block is RTL direction. 390 // block is RTL direction.
391 switch (granularity) { 391 switch (granularity) {
392 case CharacterGranularity: 392 case CharacterGranularity:
393 if (directionOfEnclosingBlock() == TextDirection::Ltr) 393 if (directionOfEnclosingBlock() == TextDirection::kLtr)
394 pos = previousPositionOf(pos, CanSkipOverEditingBoundary); 394 pos = previousPositionOf(pos, CanSkipOverEditingBoundary);
395 else 395 else
396 pos = nextPositionOf(pos, CanSkipOverEditingBoundary); 396 pos = nextPositionOf(pos, CanSkipOverEditingBoundary);
397 break; 397 break;
398 case WordGranularity: 398 case WordGranularity:
399 if (directionOfEnclosingBlock() == TextDirection::Ltr) 399 if (directionOfEnclosingBlock() == TextDirection::kLtr)
400 pos = previousWordPosition(pos); 400 pos = previousWordPosition(pos);
401 else 401 else
402 pos = nextWordPositionForPlatform(pos); 402 pos = nextWordPositionForPlatform(pos);
403 break; 403 break;
404 case LineBoundary: 404 case LineBoundary:
405 if (directionOfEnclosingBlock() == TextDirection::Ltr) 405 if (directionOfEnclosingBlock() == TextDirection::kLtr)
406 pos = modifyExtendingBackward(granularity); 406 pos = modifyExtendingBackward(granularity);
407 else 407 else
408 pos = modifyExtendingForward(granularity); 408 pos = modifyExtendingForward(granularity);
409 break; 409 break;
410 case SentenceGranularity: 410 case SentenceGranularity:
411 case LineGranularity: 411 case LineGranularity:
412 case ParagraphGranularity: 412 case ParagraphGranularity:
413 case SentenceBoundary: 413 case SentenceBoundary:
414 case ParagraphBoundary: 414 case ParagraphBoundary:
415 case DocumentBoundary: 415 case DocumentBoundary:
416 pos = modifyExtendingBackward(granularity); 416 pos = modifyExtendingBackward(granularity);
417 break; 417 break;
418 } 418 }
419 adjustPositionForUserSelectAll( 419 adjustPositionForUserSelectAll(
420 pos, !(directionOfEnclosingBlock() == TextDirection::Ltr)); 420 pos, !(directionOfEnclosingBlock() == TextDirection::kLtr));
421 return pos; 421 return pos;
422 } 422 }
423 423
424 VisiblePosition SelectionModifier::modifyExtendingBackward( 424 VisiblePosition SelectionModifier::modifyExtendingBackward(
425 TextGranularity granularity) { 425 TextGranularity granularity) {
426 VisiblePosition pos = 426 VisiblePosition pos =
427 createVisiblePosition(m_selection.extent(), m_selection.affinity()); 427 createVisiblePosition(m_selection.extent(), m_selection.affinity());
428 428
429 // Extending a selection backward by word or character from just after a table 429 // Extending a selection backward by word or character from just after a table
430 // selects the table. This "makes sense" from the user perspective, esp. when 430 // selects the table. This "makes sense" from the user perspective, esp. when
(...skipping 28 matching lines...) Expand all
459 break; 459 break;
460 case DocumentBoundary: 460 case DocumentBoundary:
461 pos = startForPlatform(); 461 pos = startForPlatform();
462 if (isEditablePosition(pos.deepEquivalent())) 462 if (isEditablePosition(pos.deepEquivalent()))
463 pos = startOfEditableContent(pos); 463 pos = startOfEditableContent(pos);
464 else 464 else
465 pos = startOfDocument(pos); 465 pos = startOfDocument(pos);
466 break; 466 break;
467 } 467 }
468 adjustPositionForUserSelectAll( 468 adjustPositionForUserSelectAll(
469 pos, !(directionOfEnclosingBlock() == TextDirection::Ltr)); 469 pos, !(directionOfEnclosingBlock() == TextDirection::kLtr));
470 return pos; 470 return pos;
471 } 471 }
472 472
473 VisiblePosition SelectionModifier::modifyMovingLeft( 473 VisiblePosition SelectionModifier::modifyMovingLeft(
474 TextGranularity granularity) { 474 TextGranularity granularity) {
475 VisiblePosition pos; 475 VisiblePosition pos;
476 switch (granularity) { 476 switch (granularity) {
477 case CharacterGranularity: 477 case CharacterGranularity:
478 if (m_selection.isRange()) { 478 if (m_selection.isRange()) {
479 if (directionOfSelection() == TextDirection::Ltr) 479 if (directionOfSelection() == TextDirection::kLtr)
480 pos = createVisiblePosition(m_selection.start(), 480 pos = createVisiblePosition(m_selection.start(),
481 m_selection.affinity()); 481 m_selection.affinity());
482 else 482 else
483 pos = 483 pos =
484 createVisiblePosition(m_selection.end(), m_selection.affinity()); 484 createVisiblePosition(m_selection.end(), m_selection.affinity());
485 } else { 485 } else {
486 pos = leftPositionOf(createVisiblePosition(m_selection.extent(), 486 pos = leftPositionOf(createVisiblePosition(m_selection.extent(),
487 m_selection.affinity())); 487 m_selection.affinity()));
488 } 488 }
489 break; 489 break;
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
678 if (!frame() || 678 if (!frame() ||
679 !frame() 679 !frame()
680 ->editor() 680 ->editor()
681 .behavior() 681 .behavior()
682 .shouldAlwaysGrowSelectionWhenExtendingToBoundary() || 682 .shouldAlwaysGrowSelectionWhenExtendingToBoundary() ||
683 m_selection.isCaret() || !isBoundary(granularity)) { 683 m_selection.isCaret() || !isBoundary(granularity)) {
684 m_selection.setExtent(position); 684 m_selection.setExtent(position);
685 } else { 685 } else {
686 TextDirection textDirection = directionOfEnclosingBlock(); 686 TextDirection textDirection = directionOfEnclosingBlock();
687 if (direction == DirectionForward || 687 if (direction == DirectionForward ||
688 (textDirection == TextDirection::Ltr && 688 (textDirection == TextDirection::kLtr &&
689 direction == DirectionRight) || 689 direction == DirectionRight) ||
690 (textDirection == TextDirection::Rtl && direction == DirectionLeft)) 690 (textDirection == TextDirection::kRtl &&
691 direction == DirectionLeft))
691 setSelectionEnd(&m_selection, position); 692 setSelectionEnd(&m_selection, position);
692 else 693 else
693 setSelectionStart(&m_selection, position); 694 setSelectionStart(&m_selection, position);
694 } 695 }
695 break; 696 break;
696 } 697 }
697 698
698 if (granularity == LineGranularity || granularity == ParagraphGranularity) 699 if (granularity == LineGranularity || granularity == ParagraphGranularity)
699 m_xPosForVerticalArrowNavigation = x; 700 m_xPosForVerticalArrowNavigation = x;
700 701
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
867 868
868 return x; 869 return x;
869 } 870 }
870 871
871 DEFINE_TRACE(SelectionModifier) { 872 DEFINE_TRACE(SelectionModifier) {
872 visitor->trace(m_frame); 873 visitor->trace(m_frame);
873 visitor->trace(m_selection); 874 visitor->trace(m_selection);
874 } 875 }
875 876
876 } // namespace blink 877 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698