1 #ifndef qwkpage_h 2 #define qwkpage_h 3 4 #include "qwebkitglobal.h" 5 #include <QAction> 6 #include <QMenu> 7 #include <QObject> 8 #include <QPoint> 9 #include <QRect> 10 #include <QSize> 11 #include <QUrl> 12 #include <WebKit2/WKBase.h> 13 #include <WebKit2/WKPage.h> 14 15 class QCursor; 16 class QGraphicsItem; 17 class QWKContext; 18 class QWKGraphicsWidget; 19 class QWKPreferences; 20 class QWKPagePrivate; 21 class QtViewportAttributesPrivate; 22 class QWKHistory; 23 24 class QWEBKIT_EXPORT QWKPage : public QObject { 25 Q_OBJECT 26 Q_PROPERTY(QString title READ title) 27 Q_PROPERTY(QUrl url READ url WRITE setUrl) 28 29 public: 30 enum WebAction { 31 NoWebAction = - 1, 32 33 OpenLink, 34 OpenLinkInNewWindow, 35 CopyLinkToClipboard, 36 OpenImageInNewWindow, 37 38 Back, 39 Forward, 40 Stop, 41 Reload, 42 43 Cut, 44 Copy, 45 Paste, 46 SelectAll, 47 48 WebActionCount 49 }; 50 51 class QWEBKIT_EXPORT ViewportAttributes { 52 public: 53 ViewportAttributes(); 54 ViewportAttributes(const QWKPage::ViewportAttributes& other); 55 56 ~ViewportAttributes(); 57 58 QWKPage::ViewportAttributes& operator=(const QWKPage::ViewportAttributes& other); 59 initialScaleFactor()60 inline qreal initialScaleFactor() const { return m_initialScaleFactor; }; minimumScaleFactor()61 inline qreal minimumScaleFactor() const { return m_minimumScaleFactor; }; maximumScaleFactor()62 inline qreal maximumScaleFactor() const { return m_maximumScaleFactor; }; devicePixelRatio()63 inline qreal devicePixelRatio() const { return m_devicePixelRatio; }; isUserScalable()64 inline bool isUserScalable() const { return m_isUserScalable; }; isValid()65 inline bool isValid() const { return m_isValid; }; size()66 inline QSize size() const { return m_size; }; 67 68 private: 69 QSharedDataPointer<QtViewportAttributesPrivate> d; 70 qreal m_initialScaleFactor; 71 qreal m_minimumScaleFactor; 72 qreal m_maximumScaleFactor; 73 qreal m_devicePixelRatio; 74 bool m_isUserScalable; 75 bool m_isValid; 76 QSize m_size; 77 78 friend class QWKPage; 79 }; 80 81 QWKPage(QWKContext*); 82 virtual ~QWKPage(); 83 84 WKPageRef pageRef() const; 85 86 QWKPreferences* preferences() const; 87 88 void load(const QUrl& url); 89 void setUrl(const QUrl& url); 90 QUrl url() const; 91 92 QString title() const; 93 94 void setViewportSize(const QSize&); 95 ViewportAttributes viewportAttributesForSize(const QSize& availableSize) const; 96 97 void setActualVisibleContentsRect(const QRect& rect) const; 98 99 void setResizesToContentsUsingLayoutSize(const QSize& targetLayoutSize); 100 101 QAction* action(WebAction action) const; 102 void triggerAction(WebAction action, bool checked = false); 103 104 typedef QWKPage* (*CreateNewPageFn)(QWKPage*); 105 void setCreateNewPageFunction(CreateNewPageFn function); 106 107 void setCustomUserAgent(const QString&); 108 QString customUserAgent() const; 109 110 qreal textZoomFactor() const; 111 qreal pageZoomFactor() const; 112 void setTextZoomFactor(qreal zoomFactor); 113 void setPageZoomFactor(qreal zoomFactor); 114 void setPageAndTextZoomFactors(qreal pageZoomFactor, qreal textZoomFactor); 115 116 QWKHistory* history() const; 117 QWKContext* context() const; 118 119 void findZoomableAreaForPoint(const QPoint&); 120 121 bool isConnectedToEngine() const; 122 123 public: 124 Q_SIGNAL void statusBarMessage(const QString&); 125 Q_SIGNAL void toolTipChanged(const QString&); 126 Q_SIGNAL void titleChanged(const QString&); 127 Q_SIGNAL void loadStarted(); 128 Q_SIGNAL void loadFinished(bool ok); 129 Q_SIGNAL void loadProgress(int progress); 130 Q_SIGNAL void initialLayoutCompleted(); 131 Q_SIGNAL void urlChanged(const QUrl&); 132 Q_SIGNAL void contentsSizeChanged(const QSize&); 133 Q_SIGNAL void scrollRequested(int dx, int dy); 134 Q_SIGNAL void cursorChanged(const QCursor&); 135 Q_SIGNAL void viewportChangeRequested(); 136 Q_SIGNAL void windowCloseRequested(); 137 Q_SIGNAL void zoomableAreaFound(const QRect&); 138 Q_SIGNAL void focusNextPrevChild(bool); 139 Q_SIGNAL void showContextMenu(QSharedPointer<QMenu>); 140 Q_SIGNAL void engineConnectionChanged(bool connected); 141 142 protected: 143 void timerEvent(QTimerEvent*); 144 145 private: 146 #ifndef QT_NO_ACTION 147 Q_PRIVATE_SLOT(d, void _q_webActionTriggered(bool checked)); 148 #endif 149 QWKPagePrivate* d; 150 151 friend class QGraphicsWKView; 152 friend class QGraphicsWKViewPrivate; 153 friend class QWKPagePrivate; 154 }; 155 156 #endif /* qwkpage_h */ 157