OLD | NEW |
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 * | 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 16 matching lines...) Expand all Loading... |
27 #define Editor_h | 27 #define Editor_h |
28 | 28 |
29 #include "core/CoreExport.h" | 29 #include "core/CoreExport.h" |
30 #include "core/clipboard/DataTransferAccessPolicy.h" | 30 #include "core/clipboard/DataTransferAccessPolicy.h" |
31 #include "core/editing/EditingBehavior.h" | 31 #include "core/editing/EditingBehavior.h" |
32 #include "core/editing/EphemeralRange.h" | 32 #include "core/editing/EphemeralRange.h" |
33 #include "core/editing/FindOptions.h" | 33 #include "core/editing/FindOptions.h" |
34 #include "core/editing/FrameSelection.h" | 34 #include "core/editing/FrameSelection.h" |
35 #include "core/editing/VisibleSelection.h" | 35 #include "core/editing/VisibleSelection.h" |
36 #include "core/editing/WritingDirection.h" | 36 #include "core/editing/WritingDirection.h" |
37 #include "core/editing/commands/CompositeEditCommand.h" | |
38 #include "core/editing/iterators/TextIterator.h" | 37 #include "core/editing/iterators/TextIterator.h" |
39 #include "core/editing/markers/DocumentMarker.h" | 38 #include "core/editing/markers/DocumentMarker.h" |
40 #include "core/events/InputEvent.h" | 39 #include "core/events/InputEvent.h" |
41 #include "platform/PasteMode.h" | 40 #include "platform/PasteMode.h" |
42 #include "platform/heap/Handle.h" | 41 #include "platform/heap/Handle.h" |
43 #include <memory> | 42 #include <memory> |
44 | 43 |
45 namespace blink { | 44 namespace blink { |
46 | 45 |
47 class CompositeEditCommand; | 46 class CompositeEditCommand; |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
92 bool canCut() const; | 91 bool canCut() const; |
93 bool canCopy() const; | 92 bool canCopy() const; |
94 bool canPaste() const; | 93 bool canPaste() const; |
95 bool canDelete() const; | 94 bool canDelete() const; |
96 bool canSmartCopyOrDelete() const; | 95 bool canSmartCopyOrDelete() const; |
97 | 96 |
98 void cut(EditCommandSource); | 97 void cut(EditCommandSource); |
99 void copy(); | 98 void copy(); |
100 void paste(EditCommandSource); | 99 void paste(EditCommandSource); |
101 void pasteAsPlainText(EditCommandSource); | 100 void pasteAsPlainText(EditCommandSource); |
102 void performDelete(EditCommandSource); | 101 void performDelete(); |
103 | 102 |
104 static void countEvent(ExecutionContext*, const Event*); | 103 static void countEvent(ExecutionContext*, const Event*); |
105 void copyImage(const HitTestResult&); | 104 void copyImage(const HitTestResult&); |
106 | 105 |
107 void transpose(EditCommandSource); | 106 void transpose(); |
108 | 107 |
109 void respondToChangedContents(const VisibleSelection& endingSelection); | 108 void respondToChangedContents(const VisibleSelection& endingSelection); |
110 | 109 |
111 bool selectionStartHasStyle(CSSPropertyID, const String& value) const; | 110 bool selectionStartHasStyle(CSSPropertyID, const String& value) const; |
112 TriState selectionHasStyle(CSSPropertyID, const String& value) const; | 111 TriState selectionHasStyle(CSSPropertyID, const String& value) const; |
113 String selectionStartCSSPropertyValue(CSSPropertyID); | 112 String selectionStartCSSPropertyValue(CSSPropertyID); |
114 | 113 |
115 void removeFormattingAndStyle(EditCommandSource); | 114 void removeFormattingAndStyle(); |
116 | 115 |
117 void registerCommandGroup(CompositeEditCommand* commandGroupWrapper); | 116 void registerCommandGroup(CompositeEditCommand* commandGroupWrapper); |
118 void clearLastEditCommand(); | 117 void clearLastEditCommand(); |
119 | 118 |
120 bool deleteWithDirection(EditCommandSource, | 119 bool deleteWithDirection(DeleteDirection, |
121 DeleteDirection, | |
122 TextGranularity, | 120 TextGranularity, |
123 bool killRing, | 121 bool killRing, |
124 bool isTypingAction); | 122 bool isTypingAction); |
125 void deleteSelectionWithSmartDelete( | 123 void deleteSelectionWithSmartDelete( |
126 EditCommandSource, | |
127 DeleteMode, | 124 DeleteMode, |
128 InputEvent::InputType, | 125 InputEvent::InputType, |
129 const Position& referenceMovePosition = Position()); | 126 const Position& referenceMovePosition = Position()); |
130 | 127 |
131 void applyStyle(EditCommandSource, StylePropertySet*, InputEvent::InputType); | 128 void applyStyle(StylePropertySet*, InputEvent::InputType); |
132 void applyParagraphStyle(EditCommandSource, | 129 void applyParagraphStyle(StylePropertySet*, InputEvent::InputType); |
133 StylePropertySet*, | 130 void applyStyleToSelection(StylePropertySet*, InputEvent::InputType); |
134 InputEvent::InputType); | 131 void applyParagraphStyleToSelection(StylePropertySet*, InputEvent::InputType); |
135 void applyStyleToSelection(EditCommandSource, | |
136 StylePropertySet*, | |
137 InputEvent::InputType); | |
138 void applyParagraphStyleToSelection(EditCommandSource, | |
139 StylePropertySet*, | |
140 InputEvent::InputType); | |
141 | 132 |
142 void appliedEditing(CompositeEditCommand*); | 133 void appliedEditing(CompositeEditCommand*); |
143 void unappliedEditing(EditCommandComposition*); | 134 void unappliedEditing(EditCommandComposition*); |
144 void reappliedEditing(EditCommandComposition*); | 135 void reappliedEditing(EditCommandComposition*); |
145 | 136 |
146 void setShouldStyleWithCSS(bool flag) { m_shouldStyleWithCSS = flag; } | 137 void setShouldStyleWithCSS(bool flag) { m_shouldStyleWithCSS = flag; } |
147 bool shouldStyleWithCSS() const { return m_shouldStyleWithCSS; } | 138 bool shouldStyleWithCSS() const { return m_shouldStyleWithCSS; } |
148 | 139 |
149 class CORE_EXPORT Command { | 140 class CORE_EXPORT Command { |
150 STACK_ALLOCATED(); | 141 STACK_ALLOCATED(); |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
186 Command createCommand(const String& commandName); | 177 Command createCommand(const String& commandName); |
187 // Command source is |EditCommandSource::kDOM|. | 178 // Command source is |EditCommandSource::kDOM|. |
188 Command createCommandFromDOM(const String& commandName); | 179 Command createCommandFromDOM(const String& commandName); |
189 | 180 |
190 // |Editor::executeCommand| is implementation of |WebFrame::executeCommand| | 181 // |Editor::executeCommand| is implementation of |WebFrame::executeCommand| |
191 // rather than |Document::execCommand|. | 182 // rather than |Document::execCommand|. |
192 bool executeCommand(const String&); | 183 bool executeCommand(const String&); |
193 bool executeCommand(const String& commandName, const String& value); | 184 bool executeCommand(const String& commandName, const String& value); |
194 | 185 |
195 bool insertText(const String&, KeyboardEvent* triggeringEvent); | 186 bool insertText(const String&, KeyboardEvent* triggeringEvent); |
196 bool insertTextWithoutSendingTextEvent(EditCommandSource, | 187 bool insertTextWithoutSendingTextEvent(const String&, |
197 const String&, | |
198 bool selectInsertedText, | 188 bool selectInsertedText, |
199 TextEvent* triggeringEvent); | 189 TextEvent* triggeringEvent); |
200 bool insertLineBreak(); | 190 bool insertLineBreak(); |
201 bool insertParagraphSeparator(); | 191 bool insertParagraphSeparator(); |
202 | 192 |
203 bool isOverwriteModeEnabled() const { return m_overwriteModeEnabled; } | 193 bool isOverwriteModeEnabled() const { return m_overwriteModeEnabled; } |
204 void toggleOverwriteModeEnabled(); | 194 void toggleOverwriteModeEnabled(); |
205 | 195 |
206 bool canUndo(); | 196 bool canUndo(); |
207 void undo(EditCommandSource); | 197 void undo(); |
208 bool canRedo(); | 198 bool canRedo(); |
209 void redo(EditCommandSource); | 199 void redo(); |
210 | 200 |
211 void setBaseWritingDirection(WritingDirection); | 201 void setBaseWritingDirection(WritingDirection); |
212 | 202 |
213 // smartInsertDeleteEnabled and selectTrailingWhitespaceEnabled are | 203 // smartInsertDeleteEnabled and selectTrailingWhitespaceEnabled are |
214 // mutually exclusive, meaning that enabling one will disable the other. | 204 // mutually exclusive, meaning that enabling one will disable the other. |
215 bool smartInsertDeleteEnabled() const; | 205 bool smartInsertDeleteEnabled() const; |
216 bool isSelectTrailingWhitespaceEnabled() const; | 206 bool isSelectTrailingWhitespaceEnabled() const; |
217 | 207 |
218 bool preventRevealSelection() const { return m_preventRevealSelection; } | 208 bool preventRevealSelection() const { return m_preventRevealSelection; } |
219 | 209 |
(...skipping 23 matching lines...) Expand all Loading... |
243 Range* findRangeOfString(const String& target, | 233 Range* findRangeOfString(const String& target, |
244 const EphemeralRange& referenceRange, | 234 const EphemeralRange& referenceRange, |
245 FindOptions); | 235 FindOptions); |
246 Range* findRangeOfString(const String& target, | 236 Range* findRangeOfString(const String& target, |
247 const EphemeralRangeInFlatTree& referenceRange, | 237 const EphemeralRangeInFlatTree& referenceRange, |
248 FindOptions); | 238 FindOptions); |
249 | 239 |
250 const VisibleSelection& mark() const; // Mark, to be used as emacs uses it. | 240 const VisibleSelection& mark() const; // Mark, to be used as emacs uses it. |
251 void setMark(const VisibleSelection&); | 241 void setMark(const VisibleSelection&); |
252 | 242 |
253 void computeAndSetTypingStyle(EditCommandSource, | 243 void computeAndSetTypingStyle(StylePropertySet*, InputEvent::InputType); |
254 StylePropertySet*, | |
255 InputEvent::InputType); | |
256 | 244 |
257 // |firstRectForRange| requires up-to-date layout. | 245 // |firstRectForRange| requires up-to-date layout. |
258 IntRect firstRectForRange(const EphemeralRange&) const; | 246 IntRect firstRectForRange(const EphemeralRange&) const; |
259 | 247 |
260 void respondToChangedSelection(const Position& oldSelectionStart, | 248 void respondToChangedSelection(const Position& oldSelectionStart, |
261 FrameSelection::SetSelectionOptions); | 249 FrameSelection::SetSelectionOptions); |
262 | 250 |
263 bool markedTextMatchesAreHighlighted() const; | 251 bool markedTextMatchesAreHighlighted() const; |
264 void setMarkedTextMatchesAreHighlighted(bool); | 252 void setMarkedTextMatchesAreHighlighted(bool); |
265 | 253 |
266 void replaceSelectionWithFragment(EditCommandSource, | 254 void replaceSelectionWithFragment(DocumentFragment*, |
267 DocumentFragment*, | |
268 bool selectReplacement, | 255 bool selectReplacement, |
269 bool smartReplace, | 256 bool smartReplace, |
270 bool matchStyle, | 257 bool matchStyle, |
271 InputEvent::InputType); | 258 InputEvent::InputType); |
272 void replaceSelectionWithText(EditCommandSource, | 259 void replaceSelectionWithText(const String&, |
273 const String&, | |
274 bool selectReplacement, | 260 bool selectReplacement, |
275 bool smartReplace, | 261 bool smartReplace, |
276 InputEvent::InputType); | 262 InputEvent::InputType); |
277 | 263 |
278 // Implementation of WebLocalFrameImpl::replaceSelection. | 264 // Implementation of WebLocalFrameImpl::replaceSelection. |
279 void replaceSelection(const String&); | 265 void replaceSelection(const String&); |
280 // Implementation of SpellChecker::replaceMisspelledRange. | |
281 void replaceSelectionForSpellChecker(const String&); | |
282 | 266 |
283 void replaceSelectionAfterDragging(DocumentFragment*, | 267 void replaceSelectionAfterDragging(DocumentFragment*, |
284 InsertMode, | 268 InsertMode, |
285 DragSourceType); | 269 DragSourceType); |
286 | 270 |
287 // Return false if frame was destroyed by event handler, should stop executing | 271 // Return false if frame was destroyed by event handler, should stop executing |
288 // remaining actions. | 272 // remaining actions. |
289 bool deleteSelectionAfterDraggingWithEvents( | 273 bool deleteSelectionAfterDraggingWithEvents( |
290 Element* dragSource, | 274 Element* dragSource, |
291 DeleteMode, | 275 DeleteMode, |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
380 m_mark = selection; | 364 m_mark = selection; |
381 } | 365 } |
382 | 366 |
383 inline bool Editor::markedTextMatchesAreHighlighted() const { | 367 inline bool Editor::markedTextMatchesAreHighlighted() const { |
384 return m_areMarkedTextMatchesHighlighted; | 368 return m_areMarkedTextMatchesHighlighted; |
385 } | 369 } |
386 | 370 |
387 } // namespace blink | 371 } // namespace blink |
388 | 372 |
389 #endif // Editor_h | 373 #endif // Editor_h |
OLD | NEW |