Make popup windows work
[WebKit-https.git] / WebKitQt / WebCoreSupport / ChromeClientQt.cpp
1 /*
2  * Copyright (C) 2006 Zack Rusin <zack@kde.org>
3  * Copyright (C) 2006 Apple Computer, Inc.  All rights reserved.
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 #include "config.h"
29 #include "ChromeClientQt.h"
30
31 #include "Frame.h"
32 #include "FrameView.h"
33 #include "FrameLoadRequest.h"
34
35 #include "qwebpage.h"
36 #include "qwebpage_p.h"
37
38 #define notImplemented() qDebug("FIXME: UNIMPLEMENTED: %s:%d (%s)", __FILE__, __LINE__, __FUNCTION__)
39
40 namespace WebCore
41 {
42
43     
44 ChromeClientQt::ChromeClientQt(QWebPage* webPage)
45     : m_webPage(webPage)
46 {
47     
48 }
49
50
51 ChromeClientQt::~ChromeClientQt()
52 {
53     
54 }
55
56 void ChromeClientQt::setWindowRect(const FloatRect& rect)
57 {
58     if (!m_webPage)
59         return;
60 //     m_webPage->emit setWindowRect(QRect(qRound(r.x()), qRound(r.y()),
61 //                                         qRound(r.width()), qRound(r.height())));
62 }
63
64
65 FloatRect ChromeClientQt::windowRect()
66 {
67     if (!m_webPage)
68         return FloatRect();
69
70     return IntRect(m_webPage->topLevelWidget()->geometry());
71 }
72
73
74 FloatRect ChromeClientQt::pageRect()
75 {
76     if (!m_webPage)
77         return FloatRect();
78     return FloatRect(QRectF(m_webPage->rect()));
79 }
80
81
82 float ChromeClientQt::scaleFactor()
83 {
84     notImplemented();
85     return 1;
86 }
87
88
89 void ChromeClientQt::focus()
90 {
91     if (!m_webPage)
92         return;
93     m_webPage->setFocus();
94 }
95
96
97 void ChromeClientQt::unfocus()
98 {
99     if (!m_webPage)
100         return;
101     m_webPage->clearFocus();
102 }
103
104 bool ChromeClientQt::canTakeFocus(FocusDirection)
105 {
106     if (!m_webPage)
107         return false;
108     return m_webPage->focusPolicy() != Qt::NoFocus;
109 }
110
111 void ChromeClientQt::takeFocus(FocusDirection)
112 {
113     if (!m_webPage)
114         return;
115     m_webPage->clearFocus();
116 }
117
118
119 Page* ChromeClientQt::createWindow(const FrameLoadRequest& request)
120 {
121     QWebPage *newPage = m_webPage->createWindow();
122     if (!newPage)
123         return 0;
124     return newPage->d->page;
125 }
126
127
128 Page* ChromeClientQt::createModalDialog(const FrameLoadRequest&)
129 {
130     notImplemented();
131     return 0;
132 }
133
134
135 void ChromeClientQt::show()
136 {
137     if (!m_webPage)
138         return;
139     m_webPage->topLevelWidget()->show();
140 }
141
142
143 bool ChromeClientQt::canRunModal()
144 {
145     notImplemented();
146     return false;
147 }
148
149
150 void ChromeClientQt::runModal()
151 {
152     notImplemented();
153 }
154
155
156 void ChromeClientQt::setToolbarsVisible(bool)
157 {
158     notImplemented();
159 }
160
161
162 bool ChromeClientQt::toolbarsVisible()
163 {
164     notImplemented();
165     return false;
166 }
167
168
169 void ChromeClientQt::setStatusbarVisible(bool)
170 {
171     notImplemented();
172 }
173
174
175 bool ChromeClientQt::statusbarVisible()
176 {
177     notImplemented();
178     return false;
179 }
180
181
182 void ChromeClientQt::setScrollbarsVisible(bool)
183 {
184     notImplemented();
185 }
186
187
188 bool ChromeClientQt::scrollbarsVisible()
189 {
190     notImplemented();
191     return true;
192 }
193
194
195 void ChromeClientQt::setMenubarVisible(bool)
196 {
197     notImplemented();
198 }
199
200 bool ChromeClientQt::menubarVisible()
201 {
202     notImplemented();
203     return false;
204 }
205
206 void ChromeClientQt::setResizable(bool)
207 {
208     notImplemented();
209 }
210
211 void ChromeClientQt::addMessageToConsole(const String& message, unsigned int lineNumber,
212                                          const String& sourceID)
213 {
214     QString x = message;
215     QString y = sourceID;
216     m_webPage->javaScriptConsoleMessage(x, lineNumber, y);
217 }
218
219 void ChromeClientQt::chromeDestroyed()
220 {
221     notImplemented();
222 }
223
224 bool ChromeClientQt::canRunBeforeUnloadConfirmPanel()
225 {
226     notImplemented();
227 }
228
229 bool ChromeClientQt::runBeforeUnloadConfirmPanel(const String& message, Frame* frame)
230 {
231     notImplemented();
232 }
233
234 void ChromeClientQt::closeWindowSoon()
235 {
236     notImplemented();
237 }
238
239 void ChromeClientQt::runJavaScriptAlert(Frame*, const String& msg)
240 {
241     QString x = msg;
242     m_webPage->runJavaScriptAlert(0, x);
243 }
244
245 bool ChromeClientQt::runJavaScriptConfirm(Frame*, const String&)
246 {
247     notImplemented();    
248 }
249
250 bool ChromeClientQt::runJavaScriptPrompt(Frame*, const String& message, const String& defaultValue, String& result)
251 {
252     notImplemented();
253 }
254
255 void ChromeClientQt::setStatusbarText(const String&)
256 {
257     notImplemented();
258 }
259
260 }
261
262