18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 2007 Kevin Ollivier <kevino@theolliviers.com> 38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * All rights reserved. 58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Redistribution and use in source and binary forms, with or without 78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modification, are permitted provided that the following conditions 88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * are met: 98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 1. Redistributions of source code must retain the above copyright 108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * notice, this list of conditions and the following disclaimer. 118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 2. Redistributions in binary form must reproduce the above copyright 128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * notice, this list of conditions and the following disclaimer in the 138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * documentation and/or other materials provided with the distribution. 148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY 168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR 198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef EditorClientWx_h 298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define EditorClientWx_h 308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "EditorClient.h" 328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "Page.h" 3381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#include "TextCheckerClient.h" 348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 35635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include "WebView.h" 36635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include "WebFrame.h" 37635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectnamespace WebCore { 398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochclass EditorClientWx : public EditorClient, public TextCheckerClient { 41635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Projectfriend class ::wxWebView; 42635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Projectfriend class ::wxWebFrame; 43635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectpublic: 458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual ~EditorClientWx(); 468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setPage(Page*); 478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void pageDestroyed(); 488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool shouldDeleteRange(Range*); 508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool shouldShowDeleteInterface(HTMLElement*); 518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool smartInsertDeleteEnabled(); 52635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project virtual bool isSelectTrailingWhitespaceEnabled(); 538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool isContinuousSpellCheckingEnabled(); 548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void toggleContinuousSpellChecking(); 558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool isGrammarCheckingEnabled(); 568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void toggleGrammarChecking(); 578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual int spellCheckerDocumentTag(); 588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool selectWordBeforeMenuEvent(); 608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool shouldBeginEditing(Range*); 628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool shouldEndEditing(Range*); 638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool shouldInsertNode(Node*, Range*, 648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EditorInsertAction); 658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool shouldInsertText(const String&, Range*, 668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EditorInsertAction); 678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool shouldApplyStyle(CSSStyleDeclaration*, 688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Range*); 698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool shouldMoveRangeAfterDelete(Range*, Range*); 708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool shouldChangeSelectedRange(Range* fromRange, Range* toRange, 718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EAffinity, bool stillSelecting); 728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void didBeginEditing(); 748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void respondToChangedContents(); 758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void respondToChangedSelection(); 768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void didEndEditing(); 778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void didWriteSelectionToPasteboard(); 788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void didSetSelectionTypesForPasteboard(); 798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void registerCommandForUndo(PassRefPtr<EditCommand>); 818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void registerCommandForRedo(PassRefPtr<EditCommand>); 828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void clearUndoRedoOperations(); 838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 8481bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch virtual bool canCopyCut(bool defaultValue) const; 8581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch virtual bool canPaste(bool defaultValue) const; 868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool canUndo() const; 878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool canRedo() const; 888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void undo(); 908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void redo(); 918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 920bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual const char* interpretKeyEvent(const KeyboardEvent*); 930bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual bool handleEditingKeyboardEvent(KeyboardEvent*); 948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void handleKeyboardEvent(KeyboardEvent*); 958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void handleInputMethodKeydown(KeyboardEvent*); 968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void textFieldDidBeginEditing(Element*); 988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void textFieldDidEndEditing(Element*); 998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void textDidChangeInTextField(Element*); 1008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool doTextFieldCommandFromEvent(Element*, KeyboardEvent*); 1018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void textWillBeDeletedInTextField(Element*); 1028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void textDidChangeInTextArea(Element*); 1038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void ignoreWordInSpellDocument(const String&); 1058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void learnWord(const String&); 1068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void checkSpellingOfString(const UChar*, int length, int* misspellingLocation, int* misspellingLength); 1078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void checkGrammarOfString(const UChar*, int length, Vector<GrammarDetail>&, int* badGrammarLocation, int* badGrammarLength); 1088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void updateSpellingUIWithGrammarString(const String&, const GrammarDetail& detail); 1098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void updateSpellingUIWithMisspelledWord(const String&); 1108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void showSpellingUI(bool show); 1118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool spellingUIIsShowing(); 112f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch virtual void getGuessesForWord(const String& word, const String& context, Vector<String>& guesses); 113dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch virtual String getAutoCorrectSuggestionForMisspelledWord(const WTF::String&); 114f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch 115967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch virtual void willSetInputMethodState(); 1168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void setInputMethodState(bool enabled); 1172daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch virtual void requestCheckingOfString(WebCore::SpellChecker*, int, WebCore::TextCheckingTypeMask, const WTF::String&) {} 11881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch virtual TextCheckerClient* textChecker() { return this; } 1198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectprivate: 1218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Page* m_page; 1228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}; 1238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 1258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif // EditorClientWx_h 127