| /* |
| * Copyright (C) 2007 Apple Inc. All rights reserved. |
| * |
| * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions |
| * are met: |
| * |
| * 1. Redistributions of source code must retain the above copyright |
| * notice, this list of conditions and the following disclaimer. |
| * 2. Redistributions in binary form must reproduce the above copyright |
| * notice, this list of conditions and the following disclaimer in the |
| * documentation and/or other materials provided with the distribution. |
| * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of |
| * its contributors may be used to endorse or promote products derived |
| * from this software without specific prior written permission. |
| * |
| * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY |
| * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
| * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
| * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY |
| * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
| * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
| * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
| * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
| * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| */ |
| |
| #ifndef EditingDelegate_h |
| #define EditingDelegate_h |
| |
| #include <WebKit/WebKit.h> |
| |
| class __declspec(uuid("265DCD4B-79C3-44a2-84BC-511C3EDABD6F")) EditingDelegate : public IWebEditingDelegate { |
| public: |
| EditingDelegate(); |
| |
| void setAcceptsEditing(bool b) { m_acceptsEditing = b; } |
| |
| // IUnknown |
| virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject); |
| virtual ULONG STDMETHODCALLTYPE AddRef(void); |
| virtual ULONG STDMETHODCALLTYPE Release(void); |
| |
| // IWebEditingDelegate |
| virtual HRESULT STDMETHODCALLTYPE shouldBeginEditingInDOMRange( |
| /* [in] */ IWebView *webView, |
| /* [in] */ IDOMRange *range, |
| /* [retval][out] */ BOOL *result); |
| |
| virtual HRESULT STDMETHODCALLTYPE shouldEndEditingInDOMRange( |
| /* [in] */ IWebView *webView, |
| /* [in] */ IDOMRange *range, |
| /* [retval][out] */ BOOL *result); |
| |
| virtual HRESULT STDMETHODCALLTYPE shouldInsertNode( |
| /* [in] */ IWebView *webView, |
| /* [in] */ IDOMNode *node, |
| /* [in] */ IDOMRange *range, |
| /* [in] */ WebViewInsertAction action); |
| |
| virtual HRESULT STDMETHODCALLTYPE shouldInsertText( |
| /* [in] */ IWebView *webView, |
| /* [in] */ BSTR text, |
| /* [in] */ IDOMRange *range, |
| /* [in] */ WebViewInsertAction action, |
| /* [retval][out] */ BOOL *result); |
| |
| virtual HRESULT STDMETHODCALLTYPE shouldDeleteDOMRange( |
| /* [in] */ IWebView *webView, |
| /* [in] */ IDOMRange *range, |
| /* [retval][out] */ BOOL *result); |
| |
| virtual HRESULT STDMETHODCALLTYPE shouldChangeSelectedDOMRange( |
| /* [in] */ IWebView *webView, |
| /* [in] */ IDOMRange *currentRange, |
| /* [in] */ IDOMRange *proposedRange, |
| /* [in] */ WebSelectionAffinity selectionAffinity, |
| /* [in] */ BOOL stillSelecting, |
| /* [retval][out] */ BOOL *result); |
| |
| virtual HRESULT STDMETHODCALLTYPE shouldApplyStyle( |
| /* [in] */ IWebView *webView, |
| /* [in] */ IDOMCSSStyleDeclaration *style, |
| /* [in] */ IDOMRange *range, |
| /* [retval][out] */ BOOL *result); |
| |
| virtual HRESULT STDMETHODCALLTYPE shouldChangeTypingStyle( |
| /* [in] */ IWebView *webView, |
| /* [in] */ IDOMCSSStyleDeclaration *currentStyle, |
| /* [in] */ IDOMCSSStyleDeclaration *proposedStyle, |
| /* [retval][out] */ BOOL *result); |
| |
| virtual HRESULT STDMETHODCALLTYPE doPlatformCommand( |
| /* [in] */ IWebView *webView, |
| /* [in] */ BSTR command, |
| /* [retval][out] */ BOOL *result); |
| |
| virtual HRESULT STDMETHODCALLTYPE webViewDidBeginEditing( |
| /* [in] */ IWebNotification *notification); |
| |
| virtual HRESULT STDMETHODCALLTYPE webViewDidChange( |
| /* [in] */ IWebNotification *notification); |
| |
| virtual HRESULT STDMETHODCALLTYPE webViewDidEndEditing( |
| /* [in] */ IWebNotification *notification); |
| |
| virtual HRESULT STDMETHODCALLTYPE webViewDidChangeTypingStyle( |
| /* [in] */ IWebNotification *notification); |
| |
| virtual HRESULT STDMETHODCALLTYPE webViewDidChangeSelection( |
| /* [in] */ IWebNotification *notification); |
| |
| virtual HRESULT STDMETHODCALLTYPE undoManagerForWebView( |
| /* [in] */ IWebView *webView, |
| /* [retval][out] */ IWebUndoManager **undoManager) { return E_NOTIMPL; } |
| |
| virtual HRESULT STDMETHODCALLTYPE ignoreWordInSpellDocument( |
| /* [in] */ IWebView *view, |
| /* [in] */ BSTR word) { return E_NOTIMPL; } |
| |
| virtual HRESULT STDMETHODCALLTYPE learnWord( |
| /* [in] */ BSTR word) { return E_NOTIMPL; } |
| |
| virtual HRESULT STDMETHODCALLTYPE checkSpellingOfString( |
| /* [in] */ IWebView *view, |
| /* [in] */ LPCTSTR text, |
| /* [in] */ int length, |
| /* [out] */ int *misspellingLocation, |
| /* [out] */ int *misspellingLength); |
| |
| virtual HRESULT STDMETHODCALLTYPE checkGrammarOfString( |
| /* [in] */ IWebView *view, |
| /* [in] */ LPCTSTR text, |
| /* [in] */ int length, |
| /* [out] */ IEnumWebGrammarDetails **grammarDetails, |
| /* [out] */ int *badGrammarLocation, |
| /* [out] */ int *badGrammarLength) { return E_NOTIMPL; } |
| |
| virtual HRESULT STDMETHODCALLTYPE updateSpellingUIWithGrammarString( |
| /* [in] */ BSTR string, |
| /* [in] */ int location, |
| /* [in] */ int length, |
| /* [in] */ BSTR userDescription, |
| /* [in] */ BSTR *guesses, |
| /* [in] */ int guessesCount) { return E_NOTIMPL; } |
| |
| virtual HRESULT STDMETHODCALLTYPE updateSpellingUIWithMisspelledWord( |
| /* [in] */ BSTR word) { return E_NOTIMPL; } |
| |
| virtual HRESULT STDMETHODCALLTYPE showSpellingUI( |
| /* [in] */ BOOL show) { return E_NOTIMPL; } |
| |
| virtual HRESULT STDMETHODCALLTYPE spellingUIIsShowing( |
| /* [retval][out] */ BOOL *result) { return E_NOTIMPL; } |
| |
| virtual HRESULT STDMETHODCALLTYPE guessesForWord( |
| /* [in] */ BSTR word, |
| /* [retval][out] */ IEnumSpellingGuesses **guesses) { return E_NOTIMPL; } |
| |
| virtual HRESULT STDMETHODCALLTYPE closeSpellDocument( |
| /* [in] */ IWebView *view) { return E_NOTIMPL; } |
| |
| virtual HRESULT STDMETHODCALLTYPE sharedSpellCheckerExists( |
| /* [retval][out] */ BOOL *exists) { return E_NOTIMPL; } |
| |
| virtual HRESULT STDMETHODCALLTYPE preflightChosenSpellServer( void) { return E_NOTIMPL; } |
| |
| virtual HRESULT STDMETHODCALLTYPE updateGrammar( void) { return E_NOTIMPL; } |
| |
| private: |
| bool m_acceptsEditing; |
| ULONG m_refCount; |
| }; |
| |
| #endif // !defined(EditingDelegate_h) |