diff options
Diffstat (limited to 'Source/WebCore/platform/qt/QWebPageClient.h')
-rw-r--r-- | Source/WebCore/platform/qt/QWebPageClient.h | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/Source/WebCore/platform/qt/QWebPageClient.h b/Source/WebCore/platform/qt/QWebPageClient.h new file mode 100644 index 0000000..d8f4171 --- /dev/null +++ b/Source/WebCore/platform/qt/QWebPageClient.h @@ -0,0 +1,110 @@ +/* + * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies) + * + * 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. + */ + +#ifndef QWebPageClient_h +#define QWebPageClient_h + +#ifndef QT_NO_CURSOR +#include <QCursor> +#endif + +#if USE(ACCELERATED_COMPOSITING) +#include <GraphicsLayer.h> +#endif + +#include <QPalette> +#include <QRect> + +QT_BEGIN_NAMESPACE +class QStyle; +QT_END_NAMESPACE + +class QWebPageClient { +public: + virtual ~QWebPageClient() { } + + virtual bool isQWidgetClient() const { return false; } + + virtual void scroll(int dx, int dy, const QRect&) = 0; + virtual void update(const QRect&) = 0; + virtual void setInputMethodEnabled(bool enable) = 0; + virtual bool inputMethodEnabled() const = 0; +#if USE(ACCELERATED_COMPOSITING) + virtual void setRootGraphicsLayer(WebCore::PlatformLayer* layer) { } + + // this gets called when the compositor wants us to sync the layers + // if scheduleSync is true, we schedule a sync ourselves. otherwise, + // we wait for the next update and sync the layers then. + virtual void markForSync(bool scheduleSync = false) {} + virtual bool allowsAcceleratedCompositing() const { return false; } +#endif + + virtual void setInputMethodHints(Qt::InputMethodHints hint) = 0; + +#ifndef QT_NO_CURSOR + inline void resetCursor() + { + if (!cursor().bitmap() && cursor().shape() == m_lastCursor.shape()) + return; + updateCursor(m_lastCursor); + } + + inline void setCursor(const QCursor& cursor) + { + m_lastCursor = cursor; + if (!cursor.bitmap() && cursor.shape() == this->cursor().shape()) + return; + updateCursor(cursor); + } +#endif + + virtual QPalette palette() const = 0; + virtual int screenNumber() const = 0; + virtual QWidget* ownerWidget() const = 0; + virtual QRect geometryRelativeToOwnerWidget() const = 0; + + virtual QObject* pluginParent() const = 0; + + virtual QStyle* style() const = 0; + + virtual QRectF graphicsItemVisibleRect() const { return QRectF(); } + + virtual bool viewResizesToContentsEnabled() const = 0; + + virtual QRectF windowRect() const = 0; + +protected: +#ifndef QT_NO_CURSOR + virtual QCursor cursor() const = 0; + virtual void updateCursor(const QCursor& cursor) = 0; +#endif + +private: +#ifndef QT_NO_CURSOR + QCursor m_lastCursor; +#endif +}; + +#endif |