Rename WebKitTools to Tools
[WebKit-https.git] / Tools / DumpRenderTree / win / EditingDelegate.h
1 /*
2  * Copyright (C) 2007 Apple Inc.  All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  *
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. 
13  * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
14  *     its contributors may be used to endorse or promote products derived
15  *     from this software without specific prior written permission. 
16  *
17  * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
18  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20  * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
21  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  */
28
29 #ifndef EditingDelegate_h
30 #define EditingDelegate_h
31
32 #include <WebKit/WebKit.h>
33
34 class __declspec(uuid("265DCD4B-79C3-44a2-84BC-511C3EDABD6F")) EditingDelegate : public IWebEditingDelegate {
35 public:
36     EditingDelegate();
37
38     void setAcceptsEditing(bool b) { m_acceptsEditing = b; }
39
40     // IUnknown
41     virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
42     virtual ULONG STDMETHODCALLTYPE AddRef(void);
43     virtual ULONG STDMETHODCALLTYPE Release(void);
44
45     // IWebEditingDelegate
46     virtual HRESULT STDMETHODCALLTYPE shouldBeginEditingInDOMRange( 
47         /* [in] */ IWebView *webView,
48         /* [in] */ IDOMRange *range,
49         /* [retval][out] */ BOOL *result);
50     
51     virtual HRESULT STDMETHODCALLTYPE shouldEndEditingInDOMRange( 
52         /* [in] */ IWebView *webView,
53         /* [in] */ IDOMRange *range,
54         /* [retval][out] */ BOOL *result);
55     
56     virtual HRESULT STDMETHODCALLTYPE shouldInsertNode( 
57         /* [in] */ IWebView *webView,
58         /* [in] */ IDOMNode *node,
59         /* [in] */ IDOMRange *range,
60         /* [in] */ WebViewInsertAction action);
61     
62     virtual HRESULT STDMETHODCALLTYPE shouldInsertText( 
63         /* [in] */ IWebView *webView,
64         /* [in] */ BSTR text,
65         /* [in] */ IDOMRange *range,
66         /* [in] */ WebViewInsertAction action,
67         /* [retval][out] */ BOOL *result);
68     
69     virtual HRESULT STDMETHODCALLTYPE shouldDeleteDOMRange( 
70         /* [in] */ IWebView *webView,
71         /* [in] */ IDOMRange *range,
72         /* [retval][out] */ BOOL *result);
73     
74     virtual HRESULT STDMETHODCALLTYPE shouldChangeSelectedDOMRange( 
75         /* [in] */ IWebView *webView,
76         /* [in] */ IDOMRange *currentRange,
77         /* [in] */ IDOMRange *proposedRange,
78         /* [in] */ WebSelectionAffinity selectionAffinity,
79         /* [in] */ BOOL stillSelecting,
80         /* [retval][out] */ BOOL *result);
81     
82     virtual HRESULT STDMETHODCALLTYPE shouldApplyStyle( 
83         /* [in] */ IWebView *webView,
84         /* [in] */ IDOMCSSStyleDeclaration *style,
85         /* [in] */ IDOMRange *range,
86         /* [retval][out] */ BOOL *result);
87     
88     virtual HRESULT STDMETHODCALLTYPE shouldChangeTypingStyle( 
89         /* [in] */ IWebView *webView,
90         /* [in] */ IDOMCSSStyleDeclaration *currentStyle,
91         /* [in] */ IDOMCSSStyleDeclaration *proposedStyle,
92         /* [retval][out] */ BOOL *result);
93     
94     virtual HRESULT STDMETHODCALLTYPE doPlatformCommand( 
95         /* [in] */ IWebView *webView,
96         /* [in] */ BSTR command,
97         /* [retval][out] */ BOOL *result);
98     
99     virtual HRESULT STDMETHODCALLTYPE webViewDidBeginEditing( 
100         /* [in] */ IWebNotification *notification);
101     
102     virtual HRESULT STDMETHODCALLTYPE webViewDidChange( 
103         /* [in] */ IWebNotification *notification);
104     
105     virtual HRESULT STDMETHODCALLTYPE webViewDidEndEditing( 
106         /* [in] */ IWebNotification *notification);
107     
108     virtual HRESULT STDMETHODCALLTYPE webViewDidChangeTypingStyle( 
109         /* [in] */ IWebNotification *notification);
110     
111     virtual HRESULT STDMETHODCALLTYPE webViewDidChangeSelection( 
112         /* [in] */ IWebNotification *notification);
113     
114     virtual HRESULT STDMETHODCALLTYPE undoManagerForWebView( 
115         /* [in] */ IWebView *webView,
116         /* [retval][out] */ IWebUndoManager **undoManager) { return E_NOTIMPL; }
117
118         virtual HRESULT STDMETHODCALLTYPE ignoreWordInSpellDocument( 
119             /* [in] */ IWebView *view,
120             /* [in] */ BSTR word) { return E_NOTIMPL; }
121         
122         virtual HRESULT STDMETHODCALLTYPE learnWord( 
123             /* [in] */ BSTR word) { return E_NOTIMPL; }
124         
125         virtual HRESULT STDMETHODCALLTYPE checkSpellingOfString( 
126             /* [in] */ IWebView *view,
127             /* [in] */ LPCTSTR text,
128             /* [in] */ int length,
129             /* [out] */ int *misspellingLocation,
130             /* [out] */ int *misspellingLength);
131         
132         virtual HRESULT STDMETHODCALLTYPE checkGrammarOfString( 
133             /* [in] */ IWebView *view,
134             /* [in] */ LPCTSTR text,
135             /* [in] */ int length,
136             /* [out] */ IEnumWebGrammarDetails **grammarDetails,
137             /* [out] */ int *badGrammarLocation,
138             /* [out] */ int *badGrammarLength) { return E_NOTIMPL; }
139         
140         virtual HRESULT STDMETHODCALLTYPE updateSpellingUIWithGrammarString( 
141             /* [in] */ BSTR string,
142             /* [in] */ int location,
143             /* [in] */ int length,
144             /* [in] */ BSTR userDescription,
145             /* [in] */ BSTR *guesses,
146             /* [in] */ int guessesCount) { return E_NOTIMPL; }
147         
148         virtual HRESULT STDMETHODCALLTYPE updateSpellingUIWithMisspelledWord( 
149             /* [in] */ BSTR word) { return E_NOTIMPL; }
150         
151         virtual HRESULT STDMETHODCALLTYPE showSpellingUI( 
152             /* [in] */ BOOL show) { return E_NOTIMPL; }
153         
154         virtual HRESULT STDMETHODCALLTYPE spellingUIIsShowing( 
155             /* [retval][out] */ BOOL *result) { return E_NOTIMPL; }
156         
157         virtual HRESULT STDMETHODCALLTYPE guessesForWord( 
158             /* [in] */ BSTR word,
159             /* [retval][out] */ IEnumSpellingGuesses **guesses) { return E_NOTIMPL; }
160         
161         virtual HRESULT STDMETHODCALLTYPE closeSpellDocument( 
162             /* [in] */ IWebView *view) { return E_NOTIMPL; }
163         
164         virtual HRESULT STDMETHODCALLTYPE sharedSpellCheckerExists( 
165             /* [retval][out] */ BOOL *exists) { return E_NOTIMPL; }
166         
167         virtual HRESULT STDMETHODCALLTYPE preflightChosenSpellServer( void) { return E_NOTIMPL; }
168         
169         virtual HRESULT STDMETHODCALLTYPE updateGrammar( void) { return E_NOTIMPL; }
170
171 private:
172     bool m_acceptsEditing;
173     ULONG m_refCount;
174 };
175
176 #endif // !defined(EditingDelegate_h)