1 /* 2 * Copyright (C) 2007 Kevin Ollivier <kevino@theolliviers.com> 3 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). 4 * 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions 9 * are met: 10 * 1. Redistributions of source code must retain the above copyright 11 * notice, this list of conditions and the following disclaimer. 12 * 2. Redistributions in binary form must reproduce the above copyright 13 * notice, this list of conditions and the following disclaimer in the 14 * documentation and/or other materials provided with the distribution. 15 * 16 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY 17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 19 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR 20 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 21 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 22 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 23 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 24 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 26 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 */ 28 29 #ifndef ChromeClientWx_H 30 #define ChromeClientWx_H 31 32 #include "ChromeClient.h" 33 #include "FocusDirection.h" 34 #include "IntRect.h" 35 #include "WebView.h" 36 37 namespace WebCore { 38 39 class ChromeClientWx : public ChromeClient { 40 public: 41 ChromeClientWx(wxWebView*); 42 virtual ~ChromeClientWx(); 43 virtual void chromeDestroyed(); 44 45 virtual void setWindowRect(const FloatRect&); 46 virtual FloatRect windowRect(); 47 48 virtual FloatRect pageRect(); 49 50 virtual float scaleFactor(); 51 52 virtual void focus(); 53 virtual void unfocus(); 54 55 virtual bool canTakeFocus(FocusDirection); 56 virtual void takeFocus(FocusDirection); 57 58 virtual void focusedNodeChanged(Node*); 59 virtual void focusedFrameChanged(Frame*); 60 61 virtual Page* createWindow(Frame*, const FrameLoadRequest&, const WindowFeatures&, const NavigationAction&); 62 virtual Page* createModalDialog(Frame*, const FrameLoadRequest&); 63 virtual void show(); 64 65 virtual bool canRunModal(); 66 virtual void runModal(); 67 68 virtual void setToolbarsVisible(bool); 69 virtual bool toolbarsVisible(); 70 71 virtual void setStatusbarVisible(bool); 72 virtual bool statusbarVisible(); 73 74 virtual void setScrollbarsVisible(bool); 75 virtual bool scrollbarsVisible(); 76 77 virtual void setMenubarVisible(bool); 78 virtual bool menubarVisible(); 79 80 virtual void setResizable(bool); 81 82 virtual void addMessageToConsole(MessageSource source, 83 MessageType type, 84 MessageLevel level, 85 const String& message, 86 unsigned int lineNumber, 87 const String& sourceID); 88 89 virtual bool canRunBeforeUnloadConfirmPanel(); 90 virtual bool runBeforeUnloadConfirmPanel(const String& message, 91 Frame* frame); 92 93 virtual void closeWindowSoon(); 94 95 virtual void runJavaScriptAlert(Frame*, const String&); 96 virtual bool runJavaScriptConfirm(Frame*, const String&); 97 virtual bool runJavaScriptPrompt(Frame*, const String& message, const String& defaultValue, String& result); 98 virtual void setStatusbarText(const String&); 99 virtual bool shouldInterruptJavaScript(); 100 101 virtual WebCore::KeyboardUIMode keyboardUIMode(); 102 103 virtual IntRect windowResizerRect() const; 104 virtual void scrollBackingStore(int dx, int dy, const IntRect& scrollViewRect, const IntRect& clipRect); 105 virtual void updateBackingStore(); 106 107 virtual void invalidateWindow(const IntRect&, bool); 108 virtual void invalidateContentsAndWindow(const IntRect&, bool); 109 virtual void invalidateContentsForSlowScroll(const IntRect&, bool); 110 virtual void scroll(const IntSize& scrollDelta, const IntRect& rectToScroll, const IntRect& clipRect); 111 112 virtual IntPoint screenToWindow(const IntPoint&) const; 113 virtual IntRect windowToScreen(const IntRect&) const; 114 virtual PlatformPageClient platformPageClient() const; 115 virtual void contentsSizeChanged(Frame*, const IntSize&) const; 116 scrollbarsModeDidChange()117 virtual void scrollbarsModeDidChange() const { } 118 virtual void mouseDidMoveOverElement(const HitTestResult&, unsigned modifierFlags); 119 120 virtual void setToolTip(const String&, TextDirection); 121 122 virtual void print(Frame*); 123 124 #if ENABLE(DATABASE) 125 virtual void exceededDatabaseQuota(Frame*, const String&); 126 #endif 127 128 #if ENABLE(OFFLINE_WEB_APPLICATIONS) 129 virtual void reachedMaxAppCacheSize(int64_t spaceNeeded); 130 virtual void reachedApplicationCacheOriginQuota(SecurityOrigin*); 131 #endif 132 133 #if ENABLE(CONTEXT_MENUS) showContextMenu()134 virtual void showContextMenu() { } 135 #endif 136 137 virtual void runOpenPanel(Frame*, PassRefPtr<FileChooser>); 138 virtual void chooseIconForFiles(const Vector<String>&, FileChooser*); 139 formStateDidChange(const Node *)140 virtual void formStateDidChange(const Node*) { } 141 142 virtual void setCursor(const Cursor&); 143 scrollRectIntoView(const IntRect &,const ScrollView *)144 virtual void scrollRectIntoView(const IntRect&, const ScrollView*) const {} 145 146 virtual void requestGeolocationPermissionForFrame(Frame*, Geolocation*); cancelGeolocationPermissionRequestForFrame(Frame *,Geolocation *)147 virtual void cancelGeolocationPermissionRequestForFrame(Frame*, Geolocation*) { } 148 149 virtual bool selectItemWritingDirectionIsNatural(); 150 virtual bool selectItemAlignmentFollowsMenuWritingDirection(); 151 virtual PassRefPtr<PopupMenu> createPopupMenu(PopupMenuClient*) const; 152 virtual PassRefPtr<SearchPopupMenu> createSearchPopupMenu(PopupMenuClient*) const; 153 154 private: 155 wxWebView* m_webView; 156 }; 157 158 } 159 #endif // ChromeClientWx_H 160