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

Side by Side Diff: Source/core/editing/commands/EditorCommand.cpp

Issue 1299873002: ALL-IN-ONE Introduce enum class TextAffinity (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: 2015-08-19T18:08:52 Created 5 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved. 2 * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved.
3 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) 3 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
4 * Copyright (C) 2009 Igalia S.L. 4 * Copyright (C) 2009 Igalia S.L.
5 * 5 *
6 * Redistribution and use in source and binary forms, with or without 6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions 7 * modification, are permitted provided that the following conditions
8 * are met: 8 * are met:
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
213 213
214 static bool expandSelectionToGranularity(LocalFrame& frame, TextGranularity gran ularity) 214 static bool expandSelectionToGranularity(LocalFrame& frame, TextGranularity gran ularity)
215 { 215 {
216 VisibleSelection selection = frame.selection().selection(); 216 VisibleSelection selection = frame.selection().selection();
217 selection.expandUsingGranularity(granularity); 217 selection.expandUsingGranularity(granularity);
218 const EphemeralRange newRange = selection.toNormalizedEphemeralRange(); 218 const EphemeralRange newRange = selection.toNormalizedEphemeralRange();
219 if (newRange.isNull()) 219 if (newRange.isNull())
220 return false; 220 return false;
221 if (newRange.isCollapsed()) 221 if (newRange.isCollapsed())
222 return false; 222 return false;
223 EAffinity affinity = frame.selection().affinity(); 223 TextAffinity affinity = frame.selection().affinity();
224 frame.selection().setSelectedRange(newRange, affinity, FrameSelection::NonDi rectional, FrameSelection::CloseTyping); 224 frame.selection().setSelectedRange(newRange, affinity, FrameSelection::NonDi rectional, FrameSelection::CloseTyping);
225 return true; 225 return true;
226 } 226 }
227 227
228 static TriState selectionListState(const FrameSelection& selection, const Qualif iedName& tagName) 228 static TriState selectionListState(const FrameSelection& selection, const Qualif iedName& tagName)
229 { 229 {
230 if (selection.isCaret()) { 230 if (selection.isCaret()) {
231 if (enclosingElementWithTag(selection.selection().start(), tagName)) 231 if (enclosingElementWithTag(selection.selection().start(), tagName))
232 return TrueTriState; 232 return TrueTriState;
233 } else if (selection.isRange()) { 233 } else if (selection.isRange()) {
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
391 frame.editor().deleteWithDirection(DirectionForward, ParagraphBoundary, true , false); 391 frame.editor().deleteWithDirection(DirectionForward, ParagraphBoundary, true , false);
392 return true; 392 return true;
393 } 393 }
394 394
395 static bool executeDeleteToMark(LocalFrame& frame, Event*, EditorCommandSource, const String&) 395 static bool executeDeleteToMark(LocalFrame& frame, Event*, EditorCommandSource, const String&)
396 { 396 {
397 // TODO(yosin) We should use |EphemeralRange| version of 397 // TODO(yosin) We should use |EphemeralRange| version of
398 // |VisibleSelection::toNormalizedRange()|. 398 // |VisibleSelection::toNormalizedRange()|.
399 RefPtrWillBeRawPtr<Range> mark = frame.editor().mark().toNormalizedRange(); 399 RefPtrWillBeRawPtr<Range> mark = frame.editor().mark().toNormalizedRange();
400 if (mark) { 400 if (mark) {
401 bool selected = frame.selection().setSelectedRange(unionEphemeralRanges( EphemeralRange(mark.get()), frame.editor().selectedRange()), DOWNSTREAM, FrameSe lection::NonDirectional, FrameSelection::CloseTyping); 401 bool selected = frame.selection().setSelectedRange(unionEphemeralRanges( EphemeralRange(mark.get()), frame.editor().selectedRange()), TextAffinity::Downs tream, FrameSelection::NonDirectional, FrameSelection::CloseTyping);
402 ASSERT(selected); 402 ASSERT(selected);
403 if (!selected) 403 if (!selected)
404 return false; 404 return false;
405 } 405 }
406 frame.editor().performDelete(); 406 frame.editor().performDelete();
407 frame.editor().setMark(frame.selection().selection()); 407 frame.editor().setMark(frame.selection().selection());
408 return true; 408 return true;
409 } 409 }
410 410
411 static bool executeDeleteWordBackward(LocalFrame& frame, Event*, EditorCommandSo urce, const String&) 411 static bool executeDeleteWordBackward(LocalFrame& frame, Event*, EditorCommandSo urce, const String&)
(...skipping 629 matching lines...) Expand 10 before | Expand all | Expand 10 after
1041 } 1041 }
1042 1042
1043 static bool executeSelectToMark(LocalFrame& frame, Event*, EditorCommandSource, const String&) 1043 static bool executeSelectToMark(LocalFrame& frame, Event*, EditorCommandSource, const String&)
1044 { 1044 {
1045 // TODO(yosin) We should use |EphemeralRange| version of 1045 // TODO(yosin) We should use |EphemeralRange| version of
1046 // |VisibleSelection::toNormalizedRange()|. 1046 // |VisibleSelection::toNormalizedRange()|.
1047 RefPtrWillBeRawPtr<Range> mark = frame.editor().mark().toNormalizedRange(); 1047 RefPtrWillBeRawPtr<Range> mark = frame.editor().mark().toNormalizedRange();
1048 EphemeralRange selection = frame.editor().selectedRange(); 1048 EphemeralRange selection = frame.editor().selectedRange();
1049 if (!mark || selection.isNull()) 1049 if (!mark || selection.isNull())
1050 return false; 1050 return false;
1051 frame.selection().setSelectedRange(unionEphemeralRanges(EphemeralRange(mark. get()), selection), DOWNSTREAM, FrameSelection::NonDirectional, FrameSelection:: CloseTyping); 1051 frame.selection().setSelectedRange(unionEphemeralRanges(EphemeralRange(mark. get()), selection), TextAffinity::Downstream, FrameSelection::NonDirectional, Fr ameSelection::CloseTyping);
1052 return true; 1052 return true;
1053 } 1053 }
1054 1054
1055 static bool executeSelectWord(LocalFrame& frame, Event*, EditorCommandSource, co nst String&) 1055 static bool executeSelectWord(LocalFrame& frame, Event*, EditorCommandSource, co nst String&)
1056 { 1056 {
1057 return expandSelectionToGranularity(frame, WordGranularity); 1057 return expandSelectionToGranularity(frame, WordGranularity);
1058 } 1058 }
1059 1059
1060 static bool executeSetMark(LocalFrame& frame, Event*, EditorCommandSource, const String&) 1060 static bool executeSetMark(LocalFrame& frame, Event*, EditorCommandSource, const String&)
1061 { 1061 {
(...skipping 729 matching lines...) Expand 10 before | Expand all | Expand 10 after
1791 { 1791 {
1792 return m_command && m_command->isTextInsertion; 1792 return m_command && m_command->isTextInsertion;
1793 } 1793 }
1794 1794
1795 int Editor::Command::idForHistogram() const 1795 int Editor::Command::idForHistogram() const
1796 { 1796 {
1797 return isSupported() ? m_command->idForUserMetrics : 0; 1797 return isSupported() ? m_command->idForUserMetrics : 0;
1798 } 1798 }
1799 1799
1800 } // namespace blink 1800 } // namespace blink
OLDNEW
« no previous file with comments | « Source/core/editing/commands/DeleteSelectionCommand.cpp ('k') | Source/core/editing/commands/IndentOutdentCommand.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698