Other wx port fixes needed to restore the build bot.
[WebKit.git] / WebKit / wx / WebKitSupport / ChromeClientWx.cpp
1 /*
2  * Copyright (C) 2007 Kevin Ollivier <kevino@theolliviers.com>
3  *
4  * All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions
8  * are met:
9  * 1. Redistributions of source code must retain the above copyright
10  *    notice, this list of conditions and the following disclaimer.
11  * 2. Redistributions in binary form must reproduce the above copyright
12  *    notice, this list of conditions and the following disclaimer in the
13  *    documentation and/or other materials provided with the distribution.
14  *
15  * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
16  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
18  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
19  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
20  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
21  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
22  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
23  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26  */
27
28 #include "config.h"
29 #include "ChromeClientWx.h"
30 #include "FloatRect.h"
31 #include "FrameLoadRequest.h"
32 #include "NotImplemented.h"
33 #include "PlatformString.h"
34
35 #include <stdio.h>
36
37 #include <wx/wxprec.h>
38 #ifndef WX_PRECOMP
39     #include <wx/wx.h>
40 #endif
41 #include <wx/textdlg.h>
42
43 #include "WebFrame.h"
44 #include "WebView.h"
45 #include "WebViewPrivate.h"
46
47 namespace WebCore {
48
49 ChromeClientWx::~ChromeClientWx()
50 {
51 }
52
53 void ChromeClientWx::chromeDestroyed()
54 {
55     notImplemented();
56 }
57
58 void ChromeClientWx::setWindowRect(const FloatRect&)
59 {
60     notImplemented();
61 }
62
63 FloatRect ChromeClientWx::windowRect()
64 {
65     notImplemented();
66     return FloatRect();
67 }
68
69 FloatRect ChromeClientWx::pageRect()
70 {
71     notImplemented();
72     return FloatRect();
73 }
74
75 float ChromeClientWx::scaleFactor()
76 {
77     notImplemented();
78     return 0.0;
79 }
80
81 void ChromeClientWx::focus()
82 {
83     notImplemented();
84 }
85
86 void ChromeClientWx::unfocus()
87 {
88     notImplemented();
89 }
90
91 bool ChromeClientWx::canTakeFocus(FocusDirection)
92 {
93     notImplemented();
94     return false;
95 }
96
97 void ChromeClientWx::takeFocus(FocusDirection)
98 {
99     notImplemented();
100 }
101
102
103 Page* ChromeClientWx::createWindow(Frame*, const FrameLoadRequest& request, const WindowFeatures&)
104 {
105
106     // FIXME: Create a EVT_WEBKIT_NEW_WINDOW event, and only run this code
107     // when that event is not handled.
108     
109     Page* myPage = 0;
110     wxWebFrame* newFrame = new wxWebFrame(wxTheApp->GetAppName());
111     
112     if (newFrame->webview) {
113         newFrame->webview->LoadURL(request.resourceRequest().url().url());
114         newFrame->Show(true);
115
116         WebViewPrivate* impl = newFrame->webview->m_impl;
117         if (impl)
118             myPage = impl->frame->page();
119     }
120     
121     return myPage;
122 }
123
124 Page* ChromeClientWx::createModalDialog(Frame*, const FrameLoadRequest&)
125 {
126     notImplemented();
127     return 0;
128 }
129
130 void ChromeClientWx::show()
131 {
132     notImplemented();
133 }
134
135 bool ChromeClientWx::canRunModal()
136 {
137     notImplemented();
138     return false;
139 }
140
141 void ChromeClientWx::runModal()
142 {
143     notImplemented();
144 }
145
146 void ChromeClientWx::setToolbarsVisible(bool)
147 {
148     notImplemented();
149 }
150
151 bool ChromeClientWx::toolbarsVisible()
152 {
153     notImplemented();
154     return false;
155 }
156
157 void ChromeClientWx::setStatusbarVisible(bool)
158 {
159     notImplemented();
160 }
161
162 bool ChromeClientWx::statusbarVisible()
163 {
164     notImplemented();
165     return false;
166 }
167
168 void ChromeClientWx::setScrollbarsVisible(bool)
169 {
170     notImplemented();
171 }
172
173 bool ChromeClientWx::scrollbarsVisible()
174 {
175     notImplemented();
176     return false;
177 }
178
179 void ChromeClientWx::setMenubarVisible(bool)
180 {
181     notImplemented();
182 }
183
184 bool ChromeClientWx::menubarVisible()
185 {
186     notImplemented();
187     return false;
188 }
189
190 void ChromeClientWx::setResizable(bool)
191 {
192     notImplemented();
193 }
194
195 void ChromeClientWx::addMessageToConsole(const String&,
196                                           unsigned int,
197                                           const String&)
198 {
199     notImplemented();
200 }
201
202 bool ChromeClientWx::canRunBeforeUnloadConfirmPanel()
203 {
204     notImplemented();
205     return true;
206 }
207
208 bool ChromeClientWx::runBeforeUnloadConfirmPanel(const String& string,
209                                                   Frame* frame)
210 {
211     wxMessageDialog dialog(NULL, string, wxT("Confirm Action?"), wxYES_NO);
212     return dialog.ShowModal() == wxYES;
213 }
214
215 void ChromeClientWx::closeWindowSoon()
216 {
217     notImplemented();
218 }
219
220 /*
221     Sites for testing prompts: 
222     Alert - just type in a bad web address or http://www.htmlite.com/JS002.php
223     Prompt - http://www.htmlite.com/JS007.php
224     Confirm - http://www.htmlite.com/JS006.php
225 */
226
227 void ChromeClientWx::runJavaScriptAlert(Frame* frame, const String& string)
228 {
229     wxMessageBox(string, wxT("JavaScript Alert"), wxOK);
230 }
231
232 bool ChromeClientWx::runJavaScriptConfirm(Frame* frame, const String& string)
233 {
234     wxMessageDialog dialog(NULL, string, wxT("JavaScript Confirm"), wxYES_NO);
235     dialog.Centre();
236     return (dialog.ShowModal() == wxID_YES);
237 }
238
239 bool ChromeClientWx::runJavaScriptPrompt(Frame* frame, const String& message, const String& defaultValue, String& result)
240 {
241     wxTextEntryDialog dialog(NULL, message, wxT("JavaScript Prompt"), wxEmptyString, wxOK | wxCANCEL);
242     dialog.Centre();
243     if (dialog.ShowModal() == wxID_OK) {
244         result = dialog.GetValue();
245         return true;
246     }
247     
248     return false;
249 }
250
251 void ChromeClientWx::setStatusbarText(const String&)
252 {
253     notImplemented();
254 }
255
256 bool ChromeClientWx::shouldInterruptJavaScript()
257 {
258     notImplemented();
259     return false;
260 }
261
262 bool ChromeClientWx::tabsToLinks() const
263 {
264     notImplemented();
265     return false;
266 }
267
268 IntRect ChromeClientWx::windowResizerRect() const
269 {
270     notImplemented();
271     return IntRect();
272 }
273
274 void ChromeClientWx::addToDirtyRegion(const IntRect&)
275 {
276     notImplemented();
277 }
278
279 void ChromeClientWx::scrollBackingStore(int dx, int dy, 
280                     const IntRect& scrollViewRect, 
281                     const IntRect& clipRect)
282 {
283     notImplemented();
284 }
285
286 void ChromeClientWx::updateBackingStore()
287 {
288     notImplemented();
289 }
290
291 void ChromeClientWx::mouseDidMoveOverElement(const HitTestResult&, unsigned modifierFlags)
292 {
293     notImplemented();
294 }
295
296 void ChromeClientWx::setToolTip(const String&)
297 {
298     notImplemented();
299 }
300 void ChromeClientWx::print(Frame*)
301 {
302     notImplemented();
303 }
304
305 unsigned long long ChromeClientWx::requestQuotaIncreaseForNewDatabase(Frame*, const SecurityOriginData&, const String&, unsigned long long)
306 {
307     notImplemented();
308     return 0;
309 }
310
311 unsigned long long ChromeClientWx::requestQuotaIncreaseForDatabaseOperation(Frame*, const SecurityOriginData&, const String&, unsigned long long)
312 {
313     notImplemented();
314     return 0;
315 }
316
317 }