Home | History | Annotate | Download | only in WebKitSupport
      1 /*
      2  * Copyright (C) 2007 Kevin Ollivier <kevino (at) 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 
    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)
    134     virtual void showContextMenu() { }
    135 #endif
    136 
    137     virtual void runOpenPanel(Frame*, PassRefPtr<FileChooser>);
    138     virtual void chooseIconForFiles(const Vector<String>&, FileChooser*);
    139 
    140     virtual void formStateDidChange(const Node*) { }
    141 
    142     virtual void setCursor(const Cursor&);
    143 
    144     virtual void scrollRectIntoView(const IntRect&, const ScrollView*) const {}
    145 
    146     virtual void requestGeolocationPermissionForFrame(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