]>
git.saurik.com Git - iphone-api.git/blob - WebCore/EditorClient.h
2 * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
3 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
14 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
15 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
18 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
19 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
20 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
21 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
22 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
24 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 #ifndef EditorClient_h
28 #define EditorClient_h
30 #include "EditorInsertAction.h"
31 #include "PlatformString.h"
32 #include "TextAffinity.h"
33 #include <wtf/Forward.h>
34 #include <wtf/Vector.h>
45 class CSSStyleDeclaration
;
55 class VisiblePosition
;
57 struct GrammarDetail
{
60 Vector
<String
> guesses
;
61 String userDescription
;
66 virtual ~EditorClient() { }
67 virtual void pageDestroyed() = 0;
69 virtual bool shouldDeleteRange(Range
*) = 0;
70 virtual bool shouldShowDeleteInterface(HTMLElement
*) = 0;
71 virtual bool smartInsertDeleteEnabled() = 0;
72 virtual bool isSelectTrailingWhitespaceEnabled() = 0;
73 virtual bool isContinuousSpellCheckingEnabled() = 0;
74 virtual void toggleContinuousSpellChecking() = 0;
75 virtual bool isGrammarCheckingEnabled() = 0;
76 virtual void toggleGrammarChecking() = 0;
77 virtual int spellCheckerDocumentTag() = 0;
79 virtual bool isEditable() = 0;
81 virtual bool shouldBeginEditing(Range
*) = 0;
82 virtual bool shouldEndEditing(Range
*) = 0;
83 virtual bool shouldInsertNode(Node
*, Range
*, EditorInsertAction
) = 0;
84 virtual bool shouldInsertText(const String
&, Range
*, EditorInsertAction
) = 0;
85 virtual bool shouldChangeSelectedRange(Range
* fromRange
, Range
* toRange
, EAffinity
, bool stillSelecting
) = 0;
87 virtual bool shouldApplyStyle(CSSStyleDeclaration
*, Range
*) = 0;
88 // virtual bool shouldChangeTypingStyle(CSSStyleDeclaration* fromStyle, CSSStyleDeclaration* toStyle) = 0;
89 // virtual bool doCommandBySelector(SEL selector) = 0;
90 virtual bool shouldMoveRangeAfterDelete(Range
*, Range
*) = 0;
92 virtual void didBeginEditing() = 0;
93 virtual void respondToChangedContents() = 0;
94 virtual void respondToChangedSelection() = 0;
95 virtual void didEndEditing() = 0;
96 virtual void didWriteSelectionToPasteboard() = 0;
97 virtual void didSetSelectionTypesForPasteboard() = 0;
98 // virtual void didChangeTypingStyle:(NSNotification *)notification = 0;
99 // virtual void didChangeSelection:(NSNotification *)notification = 0;
100 // virtual NSUndoManager* undoManager:(WebView *)webView = 0;
102 virtual void registerCommandForUndo(PassRefPtr
<EditCommand
>) = 0;
103 virtual void registerCommandForRedo(PassRefPtr
<EditCommand
>) = 0;
104 virtual void clearUndoRedoOperations() = 0;
106 virtual bool canUndo() const = 0;
107 virtual bool canRedo() const = 0;
109 virtual void undo() = 0;
110 virtual void redo() = 0;
112 virtual void handleKeyboardEvent(KeyboardEvent
*) = 0;
113 virtual void handleInputMethodKeydown(KeyboardEvent
*) = 0;
115 virtual void textFieldDidBeginEditing(Element
*) = 0;
116 virtual void textFieldDidEndEditing(Element
*) = 0;
117 virtual void textDidChangeInTextField(Element
*) = 0;
118 virtual bool doTextFieldCommandFromEvent(Element
*, KeyboardEvent
*) = 0;
119 virtual void textWillBeDeletedInTextField(Element
*) = 0;
120 virtual void textDidChangeInTextArea(Element
*) = 0;
121 virtual void formElementDidSetValue(Element
*) = 0;
122 virtual void formElementDidFocus(Element
*) = 0;
123 virtual void formElementDidBlur(Element
*) = 0;
124 virtual void suppressFormNotifications() = 0;
125 virtual void restoreFormNotifications() = 0;
126 virtual void suppressSelectionNotifications() = 0;
127 virtual void restoreSelectionNotifications() = 0;
128 virtual void startDelayingAndCoalescingContentChangeNotifications() = 0;
129 virtual void stopDelayingAndCoalescingContentChangeNotifications() = 0;
132 virtual NSString
* userVisibleString(NSURL
*) = 0;
133 #ifdef BUILDING_ON_TIGER
134 virtual NSArray
* pasteboardTypesForSelection(Frame
*) = 0;
138 virtual void ignoreWordInSpellDocument(const String
&) = 0;
139 virtual void learnWord(const String
&) = 0;
140 virtual void checkSpellingOfString(const UChar
*, int length
, int* misspellingLocation
, int* misspellingLength
) = 0;
141 virtual void checkGrammarOfString(const UChar
*, int length
, Vector
<GrammarDetail
>&, int* badGrammarLocation
, int* badGrammarLength
) = 0;
142 virtual void updateSpellingUIWithGrammarString(const String
&, const GrammarDetail
& detail
) = 0;
143 virtual void updateSpellingUIWithMisspelledWord(const String
&) = 0;
144 virtual void showSpellingUI(bool show
) = 0;
145 virtual bool spellingUIIsShowing() = 0;
146 virtual void getGuessesForWord(const String
&, Vector
<String
>& guesses
) = 0;
147 virtual void setInputMethodState(bool enabled
) = 0;
152 #endif // EditorClient_h