15ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen/* 25ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen * Copyright (C) 2010 Patrick Gansterer <paroga@paroga.com> 35ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen * 45ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen * Redistribution and use in source and binary forms, with or without 55ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen * modification, are permitted provided that the following conditions 65ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen * are met: 75ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen * 1. Redistributions of source code must retain the above copyright 85ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen * notice, this list of conditions and the following disclaimer. 95ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen * 2. Redistributions in binary form must reproduce the above copyright 105ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen * notice, this list of conditions and the following disclaimer in the 115ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen * documentation and/or other materials provided with the distribution. 125ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen * 135ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY 145ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 155ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 165ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY 175ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 185ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 195ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 205ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 215ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 225ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 235ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen */ 245ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen 255ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen#ifndef EditorClientWinCE_h 265ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen#define EditorClientWinCE_h 275ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen 285ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen#include "EditorClient.h" 2981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#include "TextCheckerClient.h" 305ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen 315ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsenclass WebView; 325ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen 335ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsennamespace WebKit { 345ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen 3581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochclass EditorClientWinCE : public WebCore::EditorClient, public WebCore::TextCheckerClient { 365ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsenpublic: 37bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen EditorClientWinCE(WebView*); 38bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen ~EditorClientWinCE(); 395ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen 405ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual void pageDestroyed(); 415ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen 425ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual bool shouldDeleteRange(WebCore::Range*); 435ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual bool shouldShowDeleteInterface(WebCore::HTMLElement*); 445ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual bool smartInsertDeleteEnabled(); 455ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual bool isSelectTrailingWhitespaceEnabled(); 465ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual bool isContinuousSpellCheckingEnabled(); 475ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual void toggleContinuousSpellChecking(); 485ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual bool isGrammarCheckingEnabled(); 495ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual void toggleGrammarChecking(); 505ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual int spellCheckerDocumentTag(); 515ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen 525ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual bool shouldBeginEditing(WebCore::Range*); 535ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual bool shouldEndEditing(WebCore::Range*); 545ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual bool shouldInsertNode(WebCore::Node*, WebCore::Range*, WebCore::EditorInsertAction); 555ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual bool shouldInsertText(const WTF::String&, WebCore::Range*, WebCore::EditorInsertAction); 565ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual bool shouldChangeSelectedRange(WebCore::Range*, WebCore::Range*, WebCore::EAffinity, bool); 575ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen 585ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual bool shouldApplyStyle(WebCore::CSSStyleDeclaration*, WebCore::Range*); 595ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual bool shouldMoveRangeAfterDelete(WebCore::Range*, WebCore::Range*); 605ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen 615ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual void didBeginEditing(); 625ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual void respondToChangedContents(); 635ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual void respondToChangedSelection(); 645ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual void didEndEditing(); 655ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual void didWriteSelectionToPasteboard(); 665ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual void didSetSelectionTypesForPasteboard(); 675ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen 685ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual void registerCommandForUndo(WTF::PassRefPtr<WebCore::EditCommand>); 695ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual void registerCommandForRedo(WTF::PassRefPtr<WebCore::EditCommand>); 705ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual void clearUndoRedoOperations(); 715ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen 7281bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch virtual bool canCopyCut(bool defaultValue) const; 7381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch virtual bool canPaste(bool defaultValue) const; 745ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual bool canUndo() const; 755ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual bool canRedo() const; 765ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen 775ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual void undo(); 785ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual void redo(); 795ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen 80e14391e94c850b8bd03680c23b38978db68687a8John Reck virtual const char* interpretKeyEvent(const WebCore::KeyboardEvent*); 81e14391e94c850b8bd03680c23b38978db68687a8John Reck virtual bool handleEditingKeyboardEvent(WebCore::KeyboardEvent*); 825ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual void handleKeyboardEvent(WebCore::KeyboardEvent*); 835ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual void handleInputMethodKeydown(WebCore::KeyboardEvent*); 845ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen 855ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual void textFieldDidBeginEditing(WebCore::Element*); 865ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual void textFieldDidEndEditing(WebCore::Element*); 875ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual void textDidChangeInTextField(WebCore::Element*); 885ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual bool doTextFieldCommandFromEvent(WebCore::Element*, WebCore::KeyboardEvent*); 895ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual void textWillBeDeletedInTextField(WebCore::Element*); 905ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual void textDidChangeInTextArea(WebCore::Element*); 915ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen 925ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual void ignoreWordInSpellDocument(const WTF::String&); 935ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual void learnWord(const WTF::String&); 945ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual void checkSpellingOfString(const UChar*, int, int*, int*); 955ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual WTF::String getAutoCorrectSuggestionForMisspelledWord(const WTF::String&); 965ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual void checkGrammarOfString(const UChar*, int, WTF::Vector<WebCore::GrammarDetail>&, int*, int*); 975ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual void updateSpellingUIWithGrammarString(const WTF::String&, const WebCore::GrammarDetail&); 985ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual void updateSpellingUIWithMisspelledWord(const WTF::String&); 995ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual void showSpellingUI(bool); 1005ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual bool spellingUIIsShowing(); 101f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch virtual void getGuessesForWord(const WTF::String& word, const WTF::String& context, WTF::Vector<WTF::String>& guesses); 1025ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual void willSetInputMethodState(); 1035ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen virtual void setInputMethodState(bool); 1042daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch virtual void requestCheckingOfString(WebCore::SpellChecker*, int, WebCore::TextCheckingTypeMask, const WTF::String&) {} 10581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch virtual WebCore::TextCheckerClient* textChecker() { return this; } 1065ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen 1075ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsenprivate: 1085ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen WebView* m_webView; 1095ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen}; 1105ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen 1115ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen} // namespace WebKit 1125ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen 1135ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen#endif // EditorClientWinCE_h 114