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