d3a1abc1e6c4126cf58070b7a1ee9b4bcc3af332
[WebKit-https.git] / Source / WebKit2 / UIProcess / API / qt / qtouchwebpage.h
1 /*
2  * Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies)
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Library General Public
6  * License as published by the Free Software Foundation; either
7  * version 2 of the License, or (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Library General Public License for more details.
13  *
14  * You should have received a copy of the GNU Library General Public License
15  * along with this program; see the file COPYING.LIB.  If not, write to
16  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17  * Boston, MA 02110-1301, USA.
18  *
19  */
20
21 #ifndef qtouchwebpage_h
22 #define qtouchwebpage_h
23
24 #include "qwebkitglobal.h"
25 #include "qwebkittypes.h"
26
27 #include <QtDeclarative/qsgpainteditem.h>
28 #include <QSharedPointer>
29
30 class QTouchWebPagePrivate;
31 class QTouchWebPageProxy;
32 class QWebError;
33
34 namespace WebKit {
35     class TouchViewInterface;
36 }
37
38 class QWEBKIT_EXPORT QTouchWebPage : public QSGPaintedItem {
39     Q_OBJECT
40     Q_PROPERTY(QString title READ title NOTIFY titleChanged)
41     Q_PROPERTY(QUrl url READ url NOTIFY urlChanged)
42     Q_PROPERTY(int loadProgress READ loadProgress NOTIFY loadProgressChanged)
43
44 public:
45     QTouchWebPage(QSGItem* parent = 0);
46
47     virtual ~QTouchWebPage();
48
49     void load(const QUrl&);
50     Q_INVOKABLE QUrl url() const;
51
52     Q_INVOKABLE QString title() const;
53     int loadProgress() const;
54
55     QAction* navigationAction(QtWebKit::NavigationAction which);
56
57     virtual void paint(QPainter*);
58     virtual bool event(QEvent*);
59
60 Q_SIGNALS:
61     void urlChanged(const QUrl&);
62     void titleChanged(const QString&);
63     void loadStarted();
64     void loadSucceeded();
65     void loadFailed(const QWebError&);
66     void loadProgressChanged(int progress);
67
68 protected:
69     virtual void keyPressEvent(QKeyEvent*);
70     virtual void keyReleaseEvent(QKeyEvent*);
71     virtual void inputMethodEvent(QInputMethodEvent*);
72     virtual void focusInEvent(QFocusEvent*);
73     virtual void focusOutEvent(QFocusEvent*);
74     virtual void touchEvent(QTouchEvent*);
75
76     virtual void geometryChanged(const QRectF&, const QRectF&);
77
78 private:
79     QTouchWebPagePrivate* d;
80     friend class QTouchWebPagePrivate;
81     friend class WebKit::TouchViewInterface;
82     friend class TiledDrawingAreaProxy;
83 };
84
85 #endif /* qtouchwebpage_h */