Home | History | Annotate | Download | only in qt
      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 
     60         inline qreal initialScaleFactor() const { return m_initialScaleFactor; };
     61         inline qreal minimumScaleFactor() const { return m_minimumScaleFactor; };
     62         inline qreal maximumScaleFactor() const { return m_maximumScaleFactor; };
     63         inline qreal devicePixelRatio() const { return m_devicePixelRatio; };
     64         inline bool isUserScalable() const { return m_isUserScalable; };
     65         inline bool isValid() const { return m_isValid; };
     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