| 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 18 matching lines...) Expand all Loading... |
| 29 #include "core/CoreExport.h" | 29 #include "core/CoreExport.h" |
| 30 #include "core/dom/Range.h" | 30 #include "core/dom/Range.h" |
| 31 #include "core/dom/SynchronousMutationObserver.h" | 31 #include "core/dom/SynchronousMutationObserver.h" |
| 32 #include "core/editing/CompositionUnderline.h" | 32 #include "core/editing/CompositionUnderline.h" |
| 33 #include "core/editing/EphemeralRange.h" | 33 #include "core/editing/EphemeralRange.h" |
| 34 #include "core/editing/FrameSelection.h" | 34 #include "core/editing/FrameSelection.h" |
| 35 #include "core/editing/PlainTextRange.h" | 35 #include "core/editing/PlainTextRange.h" |
| 36 #include "platform/heap/Handle.h" | 36 #include "platform/heap/Handle.h" |
| 37 #include "public/platform/WebTextInputInfo.h" | 37 #include "public/platform/WebTextInputInfo.h" |
| 38 #include "public/platform/WebTextInputType.h" | 38 #include "public/platform/WebTextInputType.h" |
| 39 #include "public/web/WebTextSuggestionInfo.h" |
| 39 #include "wtf/Vector.h" | 40 #include "wtf/Vector.h" |
| 40 | 41 |
| 41 namespace blink { | 42 namespace blink { |
| 42 | 43 |
| 43 class Editor; | 44 class Editor; |
| 44 class LocalFrame; | 45 class LocalFrame; |
| 45 class Range; | 46 class Range; |
| 46 | 47 |
| 47 class CORE_EXPORT InputMethodController final | 48 class CORE_EXPORT InputMethodController final |
| 48 : public GarbageCollectedFinalized<InputMethodController>, | 49 : public GarbageCollectedFinalized<InputMethodController>, |
| (...skipping 26 matching lines...) Expand all Loading... |
| 75 // relative to the end of the inserting text. | 76 // relative to the end of the inserting text. |
| 76 bool commitText(const String& text, | 77 bool commitText(const String& text, |
| 77 const Vector<CompositionUnderline>& underlines, | 78 const Vector<CompositionUnderline>& underlines, |
| 78 int relativeCaretPosition); | 79 int relativeCaretPosition); |
| 79 | 80 |
| 80 // Inserts ongoing composing text; changes the selection to the end of | 81 // Inserts ongoing composing text; changes the selection to the end of |
| 81 // the inserting text if DoNotKeepSelection, or holds the selection if | 82 // the inserting text if DoNotKeepSelection, or holds the selection if |
| 82 // KeepSelection. | 83 // KeepSelection. |
| 83 bool finishComposingText(ConfirmCompositionBehavior); | 84 bool finishComposingText(ConfirmCompositionBehavior); |
| 84 | 85 |
| 86 void applySuggestionReplacement(int documentMarkerID, int suggestionIndex); |
| 87 void deleteSuggestionHighlight(); |
| 88 void suggestionMenuClosed(); |
| 89 |
| 85 // Deletes the existing composition text. | 90 // Deletes the existing composition text. |
| 86 void cancelComposition(); | 91 void cancelComposition(); |
| 87 | 92 |
| 88 EphemeralRange compositionEphemeralRange() const; | 93 EphemeralRange compositionEphemeralRange() const; |
| 89 Range* compositionRange() const; | 94 Range* compositionRange() const; |
| 90 | 95 |
| 91 void clear(); | 96 void clear(); |
| 92 void documentAttached(Document*); | 97 void documentAttached(Document*); |
| 93 | 98 |
| 94 PlainTextRange getSelectionOffsets() const; | 99 PlainTextRange getSelectionOffsets() const; |
| 95 // Returns true if setting selection to specified offsets, otherwise false. | 100 // Returns true if setting selection to specified offsets, otherwise false. |
| 96 bool setEditableSelectionOffsets( | 101 bool setEditableSelectionOffsets( |
| 97 const PlainTextRange&, | 102 const PlainTextRange&, |
| 98 FrameSelection::SetSelectionOptions = FrameSelection::CloseTyping); | 103 FrameSelection::SetSelectionOptions = FrameSelection::CloseTyping); |
| 99 void extendSelectionAndDelete(int before, int after); | 104 void extendSelectionAndDelete(int before, int after); |
| 100 PlainTextRange createRangeForSelection(int start, | 105 PlainTextRange createRangeForSelection(int start, |
| 101 int end, | 106 int end, |
| 102 size_t textLength) const; | 107 size_t textLength) const; |
| 103 void deleteSurroundingText(int before, int after); | 108 void deleteSurroundingText(int before, int after); |
| 104 WebTextInputInfo textInputInfo() const; | 109 WebTextInputInfo textInputInfo() const; |
| 105 WebTextInputType textInputType() const; | 110 WebTextInputType textInputType() const; |
| 111 WebVector<blink::WebTextSuggestionInfo> getTextSuggestionInfosUnderCaret() |
| 112 const; |
| 113 void prepareForTextSuggestionMenuToBeShown(); |
| 106 | 114 |
| 107 // Call this when we will change focus. | 115 // Call this when we will change focus. |
| 108 void willChangeFocus(); | 116 void willChangeFocus(); |
| 109 | 117 |
| 110 private: | 118 private: |
| 111 Document& document() const; | 119 Document& document() const; |
| 112 bool isAvailable() const; | 120 bool isAvailable() const; |
| 113 | 121 |
| 114 Member<LocalFrame> m_frame; | 122 Member<LocalFrame> m_frame; |
| 115 Member<Range> m_compositionRange; | 123 Member<Range> m_compositionRange; |
| 116 bool m_hasComposition; | 124 bool m_hasComposition; |
| 117 | 125 |
| 118 explicit InputMethodController(LocalFrame&); | 126 explicit InputMethodController(LocalFrame&); |
| 119 | 127 |
| 120 Editor& editor() const; | 128 Editor& editor() const; |
| 121 LocalFrame& frame() const { | 129 LocalFrame& frame() const { |
| 122 DCHECK(m_frame); | 130 DCHECK(m_frame); |
| 123 return *m_frame; | 131 return *m_frame; |
| 124 } | 132 } |
| 125 | 133 |
| 126 String composingText() const; | 134 String composingText() const; |
| 127 void selectComposition() const; | 135 void selectComposition() const; |
| 128 bool setSelectionOffsets( | 136 bool setSelectionOffsets( |
| 129 const PlainTextRange&, | 137 const PlainTextRange&, |
| 130 FrameSelection::SetSelectionOptions = FrameSelection::CloseTyping); | 138 FrameSelection::SetSelectionOptions = FrameSelection::CloseTyping); |
| 131 | 139 |
| 132 void addCompositionUnderlines(const Vector<CompositionUnderline>& underlines, | 140 void addCompositionUnderlines(const Vector<CompositionUnderline>& underlines, |
| 133 ContainerNode* rootEditableElement, | 141 ContainerNode* rootEditableElement, |
| 134 unsigned offset); | 142 unsigned offset); |
| 143 void clearSuggestionMarkersTouchingSelection(); |
| 135 | 144 |
| 136 bool insertText(const String&); | 145 bool insertText(const String&); |
| 137 bool insertTextAndMoveCaret(const String&, | 146 bool insertTextAndMoveCaret(const String&, |
| 138 int relativeCaretPosition, | 147 int relativeCaretPosition, |
| 139 const Vector<CompositionUnderline>& underlines); | 148 const Vector<CompositionUnderline>& underlines); |
| 140 | 149 |
| 141 // Inserts the given text string in the place of the existing composition. | 150 // Inserts the given text string in the place of the existing composition. |
| 142 // Returns true if did replace. | 151 // Returns true if did replace. |
| 143 bool replaceComposition(const String& text); | 152 bool replaceComposition(const String& text); |
| 144 // Inserts the given text string in the place of the existing composition | 153 // Inserts the given text string in the place of the existing composition |
| (...skipping 12 matching lines...) Expand all Loading... |
| 157 int textInputFlags() const; | 166 int textInputFlags() const; |
| 158 WebTextInputMode inputModeOfFocusedElement() const; | 167 WebTextInputMode inputModeOfFocusedElement() const; |
| 159 | 168 |
| 160 // Implements |SynchronousMutationObserver|. | 169 // Implements |SynchronousMutationObserver|. |
| 161 void contextDestroyed(Document*) final; | 170 void contextDestroyed(Document*) final; |
| 162 }; | 171 }; |
| 163 | 172 |
| 164 } // namespace blink | 173 } // namespace blink |
| 165 | 174 |
| 166 #endif // InputMethodController_h | 175 #endif // InputMethodController_h |
| OLD | NEW |