165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#ifndef qgraphicswkview_h 265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#define qgraphicswkview_h 365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "qwebkitglobal.h" 565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include <WebKit2/WKBase.h> 765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include <QGraphicsWidget> 865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "qwkpage.h" 965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 1065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochQT_BEGIN_NAMESPACE 1165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochclass QCursor; 1265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochQT_END_NAMESPACE 1365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 1465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochclass QWKContext; 1565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochclass QGraphicsWKViewPrivate; 1665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 1765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochWKStringRef WKStringCreateWithQString(const QString& qString); 1865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochQString WKStringCopyQString(WKStringRef stringRef); 1965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 2065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochclass QWEBKIT_EXPORT QGraphicsWKView : public QGraphicsWidget { 2165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch Q_OBJECT 2265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch Q_PROPERTY(QString title READ title) 2365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch Q_PROPERTY(QUrl url READ url WRITE setUrl) 2465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 2565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochpublic: 2665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch enum BackingStoreType { Simple, Tiled }; 2765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch QGraphicsWKView(QWKContext* context, BackingStoreType backingStoreType = Simple, QGraphicsItem* parent = 0); 2865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 2965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual ~QGraphicsWKView(); 3065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 3165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch QWKPage* page() const; 3265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 3365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual void setGeometry(const QRectF&); 3465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 3565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch void load(const QUrl&); 3665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch void setUrl(const QUrl&); 3765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch QUrl url() const; 3865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 3965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch QString title() const; 4065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 4165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch void triggerPageAction(QWKPage::WebAction action, bool checked = false); 4265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 4365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual void paint(QPainter*, const QStyleOptionGraphicsItem*, QWidget*); 4465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual QVariant itemChange(GraphicsItemChange, const QVariant&); 4565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual bool event(QEvent*); 4665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual QSizeF sizeHint(Qt::SizeHint, const QSizeF&) const; 4765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual QVariant inputMethodQuery(Qt::InputMethodQuery) const; 4865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 4965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch void takeSnapshot(const QSize& size, const QRect& documentRect); 5065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 5165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch // FIXME: should not be public 5265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual QRectF visibleRect() const; 5365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 5465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch void prepareScaleChange(); 5565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch void commitScaleChange(); 5665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 5765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochpublic: 5865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch Q_SIGNAL void titleChanged(const QString& title); 5965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch Q_SIGNAL void loadStarted(); 6065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch Q_SIGNAL void loadFinished(bool ok); 6165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch Q_SIGNAL void loadProgress(int progress); 6265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch Q_SIGNAL void initialLayoutCompleted(); 6365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch Q_SIGNAL void urlChanged(const QUrl&); 6465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch Q_SIGNAL void snapshotTaken(const QImage&); 6565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 6665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochpublic Q_SLOTS: 6765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch void back(); 6865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch void forward(); 6965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch void reload(); 7065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch void stop(); 7181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch void showContextMenu(QSharedPointer<QMenu>); 7265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 7365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochprotected: 7465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual void keyPressEvent(QKeyEvent*); 7565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual void keyReleaseEvent(QKeyEvent*); 7665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual void mouseMoveEvent(QGraphicsSceneMouseEvent*); 7765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual void mousePressEvent(QGraphicsSceneMouseEvent*); 7865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent*); 7965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent*); 8065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual void wheelEvent(QGraphicsSceneWheelEvent*); 8165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual void touchEvent(QTouchEvent*); 8265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 8365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual void hoverMoveEvent(QGraphicsSceneHoverEvent*); 8465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 8565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch Q_SLOT void updateCursor(const QCursor&); 8665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch Q_SLOT void focusNextPrevChildCallback(bool next); 8765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 8865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual bool focusNextPrevChild(bool next); 8965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual void focusInEvent(QFocusEvent*); 9065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual void focusOutEvent(QFocusEvent*); 9165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 9265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochprivate: 932daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch Q_PRIVATE_SLOT(d, void onScaleChanged()) 942daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch Q_PRIVATE_SLOT(d, void onToolTipChanged(const QString&)) 9565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 9665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch QGraphicsWKViewPrivate* d; 9765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch friend class QGraphicsWKViewPrivate; 9865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch friend class TiledDrawingAreaProxy; 9965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}; 10065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 10165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif /* qgraphicswkview_h */ 102