OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2005, 2006, 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2005, 2006, 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 12 matching lines...) Expand all Loading... |
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
24 */ | 24 */ |
25 | 25 |
26 #ifndef InsertTextCommand_h | 26 #ifndef InsertTextCommand_h |
27 #define InsertTextCommand_h | 27 #define InsertTextCommand_h |
28 | 28 |
29 #include "core/editing/commands/CompositeEditCommand.h" | 29 #include "core/editing/commands/CompositeEditCommand.h" |
30 | 30 |
31 namespace blink { | 31 namespace blink { |
32 | 32 |
33 class InsertTextCommand final : public CompositeEditCommand { | 33 class InsertTextCommand : public CompositeEditCommand { |
34 public: | 34 public: |
35 enum RebalanceType { | 35 enum RebalanceType { |
36 RebalanceLeadingAndTrailingWhitespaces, | 36 RebalanceLeadingAndTrailingWhitespaces, |
37 RebalanceAllWhitespaces | 37 RebalanceAllWhitespaces |
38 }; | 38 }; |
39 | 39 |
40 static InsertTextCommand* create( | 40 static InsertTextCommand* create( |
41 Document& document, | 41 Document& document, |
42 const String& text, | 42 const String& text, |
43 bool selectInsertedText = false, | 43 bool selectInsertedText = false, |
44 RebalanceType rebalanceType = RebalanceLeadingAndTrailingWhitespaces) { | 44 RebalanceType rebalanceType = RebalanceLeadingAndTrailingWhitespaces) { |
45 return new InsertTextCommand(document, text, selectInsertedText, | 45 return new InsertTextCommand(document, text, selectInsertedText, |
46 rebalanceType); | 46 rebalanceType); |
47 } | 47 } |
48 | 48 |
49 String textDataForInputEvent() const final; | 49 String textDataForInputEvent() const final; |
50 | 50 |
51 private: | 51 protected: |
52 InsertTextCommand(Document&, | 52 InsertTextCommand(Document&, |
53 const String& text, | 53 const String& text, |
54 bool selectInsertedText, | 54 bool selectInsertedText, |
55 RebalanceType); | 55 RebalanceType); |
56 | 56 |
57 void doApply(EditingState*) override; | 57 void doApply(EditingState*) override; |
58 | 58 |
59 Position positionInsideTextNode(const Position&, EditingState*); | 59 Position positionInsideTextNode(const Position&, EditingState*); |
60 Position insertTab(const Position&, EditingState*); | 60 Position insertTab(const Position&, EditingState*); |
61 | 61 |
62 bool performTrivialReplace(const String&, bool selectInsertedText); | 62 bool performTrivialReplace(const String&, bool selectInsertedText); |
63 bool performOverwrite(const String&, bool selectInsertedText); | 63 bool performOverwrite(const String&, bool selectInsertedText); |
64 void setEndingSelectionWithoutValidation(const Position& startPosition, | 64 void setEndingSelectionWithoutValidation(const Position& startPosition, |
65 const Position& endPosition); | 65 const Position& endPosition); |
66 | 66 |
67 friend class TypingCommand; | 67 friend class TypingCommand; |
68 | 68 |
69 String m_text; | 69 String m_text; |
70 bool m_selectInsertedText; | 70 bool m_selectInsertedText; |
71 RebalanceType m_rebalanceType; | 71 RebalanceType m_rebalanceType; |
72 }; | 72 }; |
73 | 73 |
74 } // namespace blink | 74 } // namespace blink |
75 | 75 |
76 #endif // InsertTextCommand_h | 76 #endif // InsertTextCommand_h |
OLD | NEW |