• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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