1 /* 2 * Copyright (C) 2006 Zack Rusin <zack (at) kde.org> 3 * Copyright (C) 2006 Apple Computer, Inc. All rights reserved. 4 * Copyright (C) 2007 Ryan Leavengood <leavengood (at) gmail.com> All rights reserved. 5 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). 6 * 7 * 8 * Redistribution and use in source and binary forms, with or without 9 * modification, are permitted provided that the following conditions 10 * are met: 11 * 1. Redistributions of source code must retain the above copyright 12 * notice, this list of conditions and the following disclaimer. 13 * 2. Redistributions in binary form must reproduce the above copyright 14 * notice, this list of conditions and the following disclaimer in the 15 * documentation and/or other materials provided with the distribution. 16 * 17 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY 18 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 20 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR 21 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 22 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 23 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 24 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 25 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 */ 29 #include "config.h" 30 #include "ChromeClientHaiku.h" 31 32 #include "Frame.h" 33 #include "FrameLoadRequest.h" 34 #include "FrameView.h" 35 #include "HitTestResult.h" 36 #include "Icon.h" 37 #include "NavigationAction.h" 38 #include "NotImplemented.h" 39 #include "PlatformString.h" 40 #include "SecurityOrigin.h" 41 #include "PopupMenuHaiku.h" 42 #include "SearchPopupMenuHaiku.h" 43 44 #include <Alert.h> 45 #include <String.h> 46 47 48 namespace WebCore { 49 50 ChromeClientHaiku::ChromeClientHaiku() 51 { 52 } 53 54 ChromeClientHaiku::~ChromeClientHaiku() 55 { 56 } 57 58 void ChromeClientHaiku::chromeDestroyed() 59 { 60 notImplemented(); 61 } 62 63 void ChromeClientHaiku::setWindowRect(const FloatRect&) 64 { 65 notImplemented(); 66 } 67 68 FloatRect ChromeClientHaiku::windowRect() 69 { 70 notImplemented(); 71 return FloatRect(0, 0, 200, 200); 72 } 73 74 FloatRect ChromeClientHaiku::pageRect() 75 { 76 notImplemented(); 77 return FloatRect(0, 0, 200, 200); 78 } 79 80 float ChromeClientHaiku::scaleFactor() 81 { 82 notImplemented(); 83 return 1.0; 84 } 85 86 void ChromeClientHaiku::focus() 87 { 88 notImplemented(); 89 } 90 91 void ChromeClientHaiku::unfocus() 92 { 93 notImplemented(); 94 } 95 96 bool ChromeClientHaiku::canTakeFocus(FocusDirection) 97 { 98 notImplemented(); 99 return true; 100 } 101 102 void ChromeClientHaiku::takeFocus(FocusDirection) 103 { 104 notImplemented(); 105 } 106 107 void ChromeClientHaiku::focusedNodeChanged(Node*) 108 { 109 } 110 111 void ChromeClientHaiku::focusedFrameChanged(Frame*) 112 { 113 } 114 115 Page* ChromeClientHaiku::createWindow(Frame*, const FrameLoadRequest&, const WebCore::WindowFeatures&, const WebCore::NavigationAction&) 116 { 117 notImplemented(); 118 return 0; 119 } 120 121 Page* ChromeClientHaiku::createModalDialog(Frame*, const FrameLoadRequest&) 122 { 123 notImplemented(); 124 return 0; 125 } 126 127 void ChromeClientHaiku::show() 128 { 129 notImplemented(); 130 } 131 132 bool ChromeClientHaiku::canRunModal() 133 { 134 notImplemented(); 135 return false; 136 } 137 138 void ChromeClientHaiku::runModal() 139 { 140 notImplemented(); 141 } 142 143 void ChromeClientHaiku::setToolbarsVisible(bool) 144 { 145 notImplemented(); 146 } 147 148 bool ChromeClientHaiku::toolbarsVisible() 149 { 150 notImplemented(); 151 return false; 152 } 153 154 void ChromeClientHaiku::setStatusbarVisible(bool) 155 { 156 notImplemented(); 157 } 158 159 bool ChromeClientHaiku::statusbarVisible() 160 { 161 notImplemented(); 162 return false; 163 } 164 165 void ChromeClientHaiku::setScrollbarsVisible(bool) 166 { 167 notImplemented(); 168 } 169 170 bool ChromeClientHaiku::scrollbarsVisible() 171 { 172 notImplemented(); 173 return true; 174 } 175 176 void ChromeClientHaiku::setMenubarVisible(bool) 177 { 178 notImplemented(); 179 } 180 181 bool ChromeClientHaiku::menubarVisible() 182 { 183 notImplemented(); 184 return false; 185 } 186 187 void ChromeClientHaiku::setResizable(bool) 188 { 189 notImplemented(); 190 } 191 192 void ChromeClientHaiku::addMessageToConsole(const String& message, unsigned int lineNumber, 193 const String& sourceID) 194 { 195 printf("MESSAGE %s:%i %s\n", BString(sourceID).String(), lineNumber, BString(message).String()); 196 } 197 198 void ChromeClientHaiku::addMessageToConsole(MessageSource, MessageLevel, const String& message, 199 unsigned int lineNumber, const String& sourceID) 200 { 201 printf("MESSAGE %s:%i %s\n", BString(sourceID).String(), lineNumber, BString(message).String()); 202 } 203 204 void ChromeClientHaiku::addMessageToConsole(MessageSource, MessageType, MessageLevel, const String& message, 205 unsigned int lineNumber, const String& sourceID) 206 { 207 printf("MESSAGE %s:%i %s\n", BString(sourceID).String(), lineNumber, BString(message).String()); 208 } 209 210 bool ChromeClientHaiku::canRunBeforeUnloadConfirmPanel() 211 { 212 notImplemented(); 213 return false; 214 } 215 216 bool ChromeClientHaiku::runBeforeUnloadConfirmPanel(const String& message, Frame* frame) 217 { 218 notImplemented(); 219 return false; 220 } 221 222 void ChromeClientHaiku::closeWindowSoon() 223 { 224 notImplemented(); 225 } 226 227 void ChromeClientHaiku::runJavaScriptAlert(Frame*, const String& msg) 228 { 229 BAlert* alert = new BAlert("JavaScript", BString(msg).String(), "OK"); 230 alert->Go(); 231 } 232 233 bool ChromeClientHaiku::runJavaScriptConfirm(Frame*, const String& msg) 234 { 235 BAlert* alert = new BAlert("JavaScript", BString(msg).String(), "Yes", "No"); 236 return !alert->Go(); 237 } 238 239 bool ChromeClientHaiku::runJavaScriptPrompt(Frame*, const String& message, const String& defaultValue, String& result) 240 { 241 notImplemented(); 242 return false; 243 } 244 245 void ChromeClientHaiku::setStatusbarText(const String&) 246 { 247 notImplemented(); 248 } 249 250 bool ChromeClientHaiku::shouldInterruptJavaScript() 251 { 252 notImplemented(); 253 return false; 254 } 255 256 KeyboardUIMode ChromeClientHaiku::keyboardUIMode() 257 { 258 return KeyboardAccessDefault; 259 } 260 261 IntRect ChromeClientHaiku::windowResizerRect() const 262 { 263 return IntRect(); 264 } 265 266 void ChromeClientHaiku::invalidateWindow(const IntRect&, bool) 267 { 268 notImplemented(); 269 } 270 271 void ChromeClientHaiku::invalidateContentsAndWindow(const IntRect&, bool) 272 { 273 notImplemented(); 274 } 275 276 void ChromeClientHaiku::invalidateContentsForSlowScroll(const IntRect&, bool) 277 { 278 notImplemented(); 279 } 280 281 void ChromeClientHaiku::scroll(const IntSize& scrollDelta, const IntRect& rectToScroll, const IntRect& clipRect) 282 { 283 notImplemented(); 284 } 285 286 IntPoint ChromeClientHaiku::screenToWindow(const IntPoint&) const 287 { 288 notImplemented(); 289 return IntPoint(); 290 } 291 292 IntRect ChromeClientHaiku::windowToScreen(const IntRect&) const 293 { 294 notImplemented(); 295 return IntRect(); 296 } 297 298 PlatformPageClient ChromeClientHaiku::platformPageClient() const 299 { 300 notImplemented(); 301 return PlatformWidget(); 302 } 303 304 void ChromeClientHaiku::contentsSizeChanged(Frame*, const IntSize&) const 305 { 306 notImplemented(); 307 } 308 309 void ChromeClientHaiku::scrollRectIntoView(const IntRect&, const ScrollView*) const 310 { 311 notImplemented(); 312 } 313 314 void ChromeClientHaiku::addToDirtyRegion(const IntRect&) 315 { 316 } 317 318 void ChromeClientHaiku::scrollBackingStore(int, int, const IntRect&, const IntRect&) 319 { 320 } 321 322 void ChromeClientHaiku::updateBackingStore() 323 { 324 } 325 326 void ChromeClientHaiku::mouseDidMoveOverElement(const HitTestResult& hit, unsigned /*modifierFlags*/) 327 { 328 // Some extra info 329 notImplemented(); 330 } 331 332 void ChromeClientHaiku::setToolTip(const String& tip) 333 { 334 notImplemented(); 335 } 336 337 void ChromeClientHaiku::setToolTip(const String& tip, TextDirection) 338 { 339 notImplemented(); 340 } 341 342 void ChromeClientHaiku::print(Frame*) 343 { 344 notImplemented(); 345 } 346 347 void ChromeClientHaiku::exceededDatabaseQuota(Frame*, const String& databaseName) 348 { 349 notImplemented(); 350 } 351 352 #if ENABLE(OFFLINE_WEB_APPLICATIONS) 353 void ChromeClientWx::reachedMaxAppCacheSize(int64_t spaceNeeded) 354 { 355 notImplemented(); 356 } 357 358 void ChromeClientWx::reachedApplicationCacheOriginQuota(SecurityOrigin*) 359 { 360 notImplemented(); 361 } 362 #endif 363 364 void ChromeClientHaiku::requestGeolocationPermissionForFrame(Frame*, Geolocation*) 365 { 366 notImplemented(); 367 } 368 369 void ChromeClientHaiku::runOpenPanel(Frame*, PassRefPtr<FileChooser>) 370 { 371 notImplemented(); 372 } 373 374 void ChromeClientHaiku::chooseIconForFiles(const Vector<String>& filenames, FileChooser* chooser) 375 { 376 chooser->iconLoaded(Icon::createIconForFiles(filenames)); 377 } 378 379 void ChromeClientHaiku::setCursor(const Cursor&) 380 { 381 notImplemented(); 382 } 383 384 // Notification that the given form element has changed. This function 385 // will be called frequently, so handling should be very fast. 386 void ChromeClientHaiku::formStateDidChange(const Node*) 387 { 388 notImplemented(); 389 } 390 391 bool ChromeClientHaiku::selectItemWritingDirectionIsNatural() 392 { 393 return false; 394 } 395 396 bool ChromeClientHaiku::selectItemAlignmentFollowsMenuWritingDirection() 397 { 398 return false; 399 } 400 401 PassRefPtr<PopupMenu> ChromeClientHaiku::createPopupMenu(PopupMenuClient* client) const 402 { 403 return adoptRef(new PopupMenuHaiku(client)); 404 } 405 406 PassRefPtr<SearchPopupMenu> ChromeClientHaiku::createSearchPopupMenu(PopupMenuClient* client) const 407 { 408 return adoptRef(new SearchPopupMenuHaiku(client)); 409 } 410 411 } // namespace WebCore 412 413