summaryrefslogtreecommitdiffstats
path: root/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebKit/qt/WebCoreSupport/ChromeClientQt.cpp')
-rw-r--r--WebKit/qt/WebCoreSupport/ChromeClientQt.cpp396
1 files changed, 0 insertions, 396 deletions
diff --git a/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp b/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp
deleted file mode 100644
index 8a4de6b..0000000
--- a/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp
+++ /dev/null
@@ -1,396 +0,0 @@
-/*
- * Copyright (C) 2006 Zack Rusin <zack@kde.org>
- * Copyright (C) 2006 Apple Computer, Inc. All rights reserved.
- *
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#include "config.h"
-#include "ChromeClientQt.h"
-
-#include "FileChooser.h"
-#include "Frame.h"
-#include "FrameLoadRequest.h"
-#include "FrameLoader.h"
-#include "FrameLoaderClientQt.h"
-#include "FrameView.h"
-#include "HitTestResult.h"
-#include "NotImplemented.h"
-#include "WindowFeatures.h"
-
-#include "qwebpage.h"
-#include "qwebpage_p.h"
-#include "qwebframe_p.h"
-
-#include <qtooltip.h>
-
-namespace WebCore
-{
-
-
-ChromeClientQt::ChromeClientQt(QWebPage* webPage)
- : m_webPage(webPage)
-{
- toolBarsVisible = statusBarVisible = menuBarVisible = true;
-}
-
-ChromeClientQt::~ChromeClientQt()
-{
-
-}
-
-void ChromeClientQt::setWindowRect(const FloatRect& rect)
-{
- if (!m_webPage)
- return;
- emit m_webPage->geometryChangeRequested(QRect(qRound(rect.x()), qRound(rect.y()),
- qRound(rect.width()), qRound(rect.height())));
-}
-
-
-FloatRect ChromeClientQt::windowRect()
-{
- if (!m_webPage)
- return FloatRect();
-
- QWidget* view = m_webPage->view();
- if (!view)
- return FloatRect();
- return IntRect(view->topLevelWidget()->geometry());
-}
-
-
-FloatRect ChromeClientQt::pageRect()
-{
- if (!m_webPage)
- return FloatRect();
- return FloatRect(QRectF(QPointF(0,0), m_webPage->viewportSize()));
-}
-
-
-float ChromeClientQt::scaleFactor()
-{
- notImplemented();
- return 1;
-}
-
-
-void ChromeClientQt::focus()
-{
- if (!m_webPage)
- return;
- QWidget* view = m_webPage->view();
- if (!view)
- return;
-
- view->setFocus();
-}
-
-
-void ChromeClientQt::unfocus()
-{
- if (!m_webPage)
- return;
- QWidget* view = m_webPage->view();
- if (!view)
- return;
- view->clearFocus();
-}
-
-bool ChromeClientQt::canTakeFocus(FocusDirection)
-{
- // This is called when cycling through links/focusable objects and we
- // reach the last focusable object. Then we want to claim that we can
- // take the focus to avoid wrapping.
- return true;
-}
-
-void ChromeClientQt::takeFocus(FocusDirection)
-{
- // don't do anything. This is only called when cycling to links/focusable objects,
- // which in turn is called from focusNextPrevChild. We let focusNextPrevChild
- // call QWidget::focusNextPrevChild accordingly, so there is no need to do anything
- // here.
-}
-
-
-Page* ChromeClientQt::createWindow(Frame*, const FrameLoadRequest& request, const WindowFeatures& features)
-{
- QWebPage *newPage = m_webPage->createWindow(features.dialog ? QWebPage::WebModalDialog : QWebPage::WebBrowserWindow);
- if (!newPage)
- return 0;
- newPage->mainFrame()->load(request.resourceRequest().url());
- return newPage->d->page;
-}
-
-void ChromeClientQt::show()
-{
- if (!m_webPage)
- return;
- QWidget* view = m_webPage->view();
- if (!view)
- return;
- view->topLevelWidget()->show();
-}
-
-
-bool ChromeClientQt::canRunModal()
-{
- notImplemented();
- return false;
-}
-
-
-void ChromeClientQt::runModal()
-{
- notImplemented();
-}
-
-
-void ChromeClientQt::setToolbarsVisible(bool visible)
-{
- toolBarsVisible = visible;
- emit m_webPage->toolBarVisibilityChangeRequested(visible);
-}
-
-
-bool ChromeClientQt::toolbarsVisible()
-{
- return toolBarsVisible;
-}
-
-
-void ChromeClientQt::setStatusbarVisible(bool visible)
-{
- emit m_webPage->statusBarVisibilityChangeRequested(visible);
- statusBarVisible = visible;
-}
-
-
-bool ChromeClientQt::statusbarVisible()
-{
- return statusBarVisible;
- return false;
-}
-
-
-void ChromeClientQt::setScrollbarsVisible(bool)
-{
- notImplemented();
-}
-
-
-bool ChromeClientQt::scrollbarsVisible()
-{
- notImplemented();
- return true;
-}
-
-
-void ChromeClientQt::setMenubarVisible(bool visible)
-{
- menuBarVisible = visible;
- emit m_webPage->menuBarVisibilityChangeRequested(visible);
-}
-
-bool ChromeClientQt::menubarVisible()
-{
- return menuBarVisible;
-}
-
-void ChromeClientQt::setResizable(bool)
-{
- notImplemented();
-}
-
-void ChromeClientQt::addMessageToConsole(const String& message, unsigned int lineNumber,
- const String& sourceID)
-{
- QString x = message;
- QString y = sourceID;
- m_webPage->javaScriptConsoleMessage(x, lineNumber, y);
-}
-
-void ChromeClientQt::chromeDestroyed()
-{
- delete this;
-}
-
-bool ChromeClientQt::canRunBeforeUnloadConfirmPanel()
-{
- return true;
-}
-
-bool ChromeClientQt::runBeforeUnloadConfirmPanel(const String& message, Frame* frame)
-{
- return runJavaScriptConfirm(frame, message);
-}
-
-void ChromeClientQt::closeWindowSoon()
-{
- m_webPage->mainFrame()->d->frame->loader()->stopAllLoaders();
- emit m_webPage->windowCloseRequested();
-}
-
-void ChromeClientQt::runJavaScriptAlert(Frame* f, const String& msg)
-{
- QString x = msg;
- FrameLoaderClientQt *fl = static_cast<FrameLoaderClientQt*>(f->loader()->client());
- m_webPage->javaScriptAlert(fl->webFrame(), x);
-}
-
-bool ChromeClientQt::runJavaScriptConfirm(Frame* f, const String& msg)
-{
- QString x = msg;
- FrameLoaderClientQt *fl = static_cast<FrameLoaderClientQt*>(f->loader()->client());
- return m_webPage->javaScriptConfirm(fl->webFrame(), x);
-}
-
-bool ChromeClientQt::runJavaScriptPrompt(Frame* f, const String& message, const String& defaultValue, String& result)
-{
- QString x = result;
- FrameLoaderClientQt *fl = static_cast<FrameLoaderClientQt*>(f->loader()->client());
- bool rc = m_webPage->javaScriptPrompt(fl->webFrame(), (QString)message, (QString)defaultValue, &x);
- result = x;
- return rc;
-}
-
-void ChromeClientQt::setStatusbarText(const String& msg)
-{
- QString x = msg;
- emit m_webPage->statusBarMessage(x);
-}
-
-bool ChromeClientQt::shouldInterruptJavaScript()
-{
- notImplemented();
- return false;
-}
-
-bool ChromeClientQt::tabsToLinks() const
-{
- return m_webPage->settings()->testAttribute(QWebSettings::LinksIncludedInFocusChain);
-}
-
-IntRect ChromeClientQt::windowResizerRect() const
-{
- return IntRect();
-}
-
-void ChromeClientQt::repaint(const IntRect& windowRect, bool contentChanged, bool immediate, bool repaintContentOnly)
-{
- // No double buffer, so only update the QWidget if content changed.
- if (contentChanged) {
- QWidget* view = m_webPage->view();
- if (view) {
- QRect rect(windowRect);
- rect = rect.intersected(QRect(QPoint(0, 0), m_webPage->viewportSize()));
- if (!windowRect.isEmpty())
- view->update(windowRect);
- }
- emit m_webPage->repaintRequested(windowRect);
- }
-
- // FIXME: There is no "immediate" support for window painting. This should be done always whenever the flag
- // is set.
-}
-
-void ChromeClientQt::scroll(const IntSize& delta, const IntRect& scrollViewRect, const IntRect&)
-{
- QWidget* view = m_webPage->view();
- if (view)
- view->scroll(delta.width(), delta.height(), scrollViewRect);
- emit m_webPage->scrollRequested(delta.width(), delta.height(), scrollViewRect);
-}
-
-IntRect ChromeClientQt::windowToScreen(const IntRect& rect) const
-{
- notImplemented();
- return rect;
-}
-
-IntPoint ChromeClientQt::screenToWindow(const IntPoint& point) const
-{
- notImplemented();
- return point;
-}
-
-PlatformWidget ChromeClientQt::platformWindow() const
-{
- return m_webPage->view();
-}
-
-void ChromeClientQt::mouseDidMoveOverElement(const HitTestResult& result, unsigned modifierFlags)
-{
- if (result.absoluteLinkURL() != lastHoverURL
- || result.title() != lastHoverTitle
- || result.textContent() != lastHoverContent) {
- lastHoverURL = result.absoluteLinkURL();
- lastHoverTitle = result.title();
- lastHoverContent = result.textContent();
- emit m_webPage->linkHovered(lastHoverURL.prettyURL(),
- lastHoverTitle, lastHoverContent);
- }
-}
-
-void ChromeClientQt::setToolTip(const String &tip)
-{
-#ifndef QT_NO_TOOLTIP
- QWidget* view = m_webPage->view();
- if (!view)
- return;
-
- if (tip.isEmpty()) {
- view->setToolTip(QString());
- QToolTip::hideText();
- } else {
- QString dtip = QLatin1String("<p>") + tip + QLatin1String("</p>");
- view->setToolTip(dtip);
- }
-#else
- Q_UNUSED(tip);
-#endif
-}
-
-void ChromeClientQt::print(Frame *frame)
-{
- emit m_webPage->printRequested(QWebFramePrivate::kit(frame));
-}
-
-void ChromeClientQt::exceededDatabaseQuota(Frame*, const String&)
-{
- notImplemented();
-}
-
-void ChromeClientQt::runOpenPanel(Frame* frame, PassRefPtr<FileChooser> prpFileChooser)
-{
- // FIXME: Support multiple files.
-
- RefPtr<FileChooser> fileChooser = prpFileChooser;
- QString suggestedFile = fileChooser->filenames()[0];
- QString file = m_webPage->chooseFile(QWebFramePrivate::kit(frame), suggestedFile);
- if (!file.isEmpty())
- fileChooser->chooseFile(file);
-}
-
-}