| /* |
| Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) |
| Copyright (C) 2007 Staikos Computing Services Inc. |
| |
| This library is free software; you can redistribute it and/or |
| modify it under the terms of the GNU Library General Public |
| License as published by the Free Software Foundation; either |
| version 2 of the License, or (at your option) any later version. |
| |
| This library is distributed in the hope that it will be useful, |
| but WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| Library General Public License for more details. |
| |
| You should have received a copy of the GNU Library General Public License |
| along with this library; see the file COPYING.LIB. If not, write to |
| the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
| Boston, MA 02110-1301, USA. |
| */ |
| |
| #ifndef QWEBFRAME_P_H |
| #define QWEBFRAME_P_H |
| |
| #include "qwebframe.h" |
| #include "qwebpage_p.h" |
| |
| #include "EventHandler.h" |
| #include "GraphicsContext.h" |
| #include "KURL.h" |
| #include "PlatformString.h" |
| #if ENABLE(ORIENTATION_EVENTS) && ENABLE(DEVICE_ORIENTATION) |
| #include "qorientationsensor.h" |
| #endif |
| #include "qwebelement.h" |
| #include "wtf/RefPtr.h" |
| #include "Frame.h" |
| #include "ViewportArguments.h" |
| |
| #if USE(ACCELERATED_COMPOSITING) && USE(TEXTURE_MAPPER) |
| #include "texmap/TextureMapper.h" |
| #endif |
| |
| |
| namespace WebCore { |
| class FrameLoaderClientQt; |
| class FrameView; |
| class HTMLFrameOwnerElement; |
| class Scrollbar; |
| class TextureMapperContentLayer; |
| } |
| class QWebPage; |
| |
| class QWebFrameData { |
| public: |
| QWebFrameData(WebCore::Page*, WebCore::Frame* parentFrame = 0, |
| WebCore::HTMLFrameOwnerElement* = 0, |
| const WTF::String& frameName = WTF::String()); |
| |
| WebCore::KURL url; |
| WTF::String name; |
| WebCore::HTMLFrameOwnerElement* ownerElement; |
| WebCore::Page* page; |
| RefPtr<WebCore::Frame> frame; |
| WebCore::FrameLoaderClientQt* frameLoaderClient; |
| |
| WTF::String referrer; |
| bool allowsScrolling; |
| int marginWidth; |
| int marginHeight; |
| }; |
| |
| class QWebFramePrivate { |
| public: |
| QWebFramePrivate() |
| : q(0) |
| , horizontalScrollBarPolicy(Qt::ScrollBarAsNeeded) |
| , verticalScrollBarPolicy(Qt::ScrollBarAsNeeded) |
| , frameLoaderClient(0) |
| , frame(0) |
| , page(0) |
| , allowsScrolling(true) |
| , marginWidth(-1) |
| , marginHeight(-1) |
| #if USE(ACCELERATED_COMPOSITING) && USE(TEXTURE_MAPPER) |
| , rootGraphicsLayer(0) |
| #endif |
| {} |
| void init(QWebFrame* qframe, QWebFrameData* frameData); |
| void setPage(QWebPage*); |
| |
| inline QWebFrame *parentFrame() { return qobject_cast<QWebFrame*>(q->parent()); } |
| |
| WebCore::Scrollbar* horizontalScrollBar() const; |
| WebCore::Scrollbar* verticalScrollBar() const; |
| |
| static WebCore::Frame* core(const QWebFrame*); |
| static QWebFrame* kit(const WebCore::Frame*); |
| |
| void renderRelativeCoords(WebCore::GraphicsContext*, QFlags<QWebFrame::RenderLayer>, const QRegion& clip); |
| #if ENABLE(TILED_BACKING_STORE) |
| void renderFromTiledBackingStore(WebCore::GraphicsContext*, const QRegion& clip); |
| #endif |
| |
| #if USE(ACCELERATED_COMPOSITING) && USE(TEXTURE_MAPPER) |
| void renderCompositedLayers(WebCore::GraphicsContext*, const WebCore::IntRect& clip); |
| #endif |
| void renderFrameExtras(WebCore::GraphicsContext*, QFlags<QWebFrame::RenderLayer>, const QRegion& clip); |
| void emitUrlChanged(); |
| void _q_orientationChanged(); |
| |
| QWebFrame *q; |
| Qt::ScrollBarPolicy horizontalScrollBarPolicy; |
| Qt::ScrollBarPolicy verticalScrollBarPolicy; |
| WebCore::FrameLoaderClientQt *frameLoaderClient; |
| WebCore::Frame *frame; |
| QWebPage *page; |
| WebCore::KURL url; |
| |
| bool allowsScrolling; |
| int marginWidth; |
| int marginHeight; |
| #if USE(ACCELERATED_COMPOSITING) && USE(TEXTURE_MAPPER) |
| WebCore::TextureMapperContentLayer* rootGraphicsLayer; |
| OwnPtr<WebCore::TextureMapper> textureMapper; |
| #endif |
| |
| #if ENABLE(ORIENTATION_EVENTS) && ENABLE(DEVICE_ORIENTATION) |
| QtMobility::QOrientationSensor m_orientation; |
| #endif |
| }; |
| |
| class QWebHitTestResultPrivate { |
| public: |
| QWebHitTestResultPrivate() : isContentEditable(false), isContentSelected(false), isScrollBar(false) {} |
| QWebHitTestResultPrivate(const WebCore::HitTestResult &hitTest); |
| |
| QPoint pos; |
| QRect boundingRect; |
| QWebElement enclosingBlock; |
| QString title; |
| QString linkText; |
| QUrl linkUrl; |
| QString linkTitle; |
| QPointer<QWebFrame> linkTargetFrame; |
| QWebElement linkElement; |
| QString alternateText; |
| QUrl imageUrl; |
| QPixmap pixmap; |
| bool isContentEditable; |
| bool isContentSelected; |
| bool isScrollBar; |
| QPointer<QWebFrame> frame; |
| RefPtr<WebCore::Node> innerNode; |
| RefPtr<WebCore::Node> innerNonSharedNode; |
| }; |
| |
| #endif |