Added the missing parameters to make it possible to do POST operations from the publi...
[WebKit-https.git] / WebKit / qt / Api / qwebframe.h
1 /*
2     Copyright (C) 2007 Trolltech ASA
3     Copyright (C) 2007 Staikos Computing Services Inc.
4
5     This library is free software; you can redistribute it and/or
6     modify it under the terms of the GNU Library General Public
7     License as published by the Free Software Foundation; either
8     version 2 of the License, or (at your option) any later version.
9
10     This library is distributed in the hope that it will be useful,
11     but WITHOUT ANY WARRANTY; without even the implied warranty of
12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13     Library General Public License for more details.
14
15     You should have received a copy of the GNU Library General Public License
16     along with this library; see the file COPYING.LIB.  If not, write to
17     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18     Boston, MA 02110-1301, USA.
19
20     This class provides all functionality needed for loading images, style sheets and html
21     pages from the web. It has a memory cache for these objects.
22 */
23
24 #ifndef QWEBFRAME_H
25 #define QWEBFRAME_H
26
27 #include <QtCore/qobject.h>
28 #include <QtCore/qurl.h>
29 #if QT_VERSION >= 0x040400
30 #include <QtNetwork/qnetworkaccessmanager.h>
31 #endif
32 #include "qwebkitglobal.h"
33
34 class QRect;
35 class QPoint;
36 class QPainter;
37 class QPixmap;
38 class QMouseEvent;
39 class QWheelEvent;
40 class QWebNetworkRequest;
41 class QNetworkRequest;
42
43 class QWebFramePrivate;
44 class QWebPage;
45
46 namespace WebCore {
47     class WidgetPrivate;
48     class FrameLoaderClientQt;
49     class ChromeClientQt;
50 }
51 class QWebFrameData;
52
53 class QWEBKIT_EXPORT QWebFrame : public QObject
54 {
55     Q_OBJECT
56 protected:
57     QWebFrame(QWebPage *parent, QWebFrameData *frameData);
58     QWebFrame(QWebFrame *parent, QWebFrameData *frameData);
59     ~QWebFrame();
60
61 public:
62     QWebPage *page() const;
63
64     void load(const QUrl &url);
65 #if QT_VERSION < 0x040400
66     void load(const QWebNetworkRequest &request);
67 #else
68     void load(const QNetworkRequest &request,
69               QNetworkAccessManager::Operation operation = QNetworkAccessManager::GetOperation,
70               const QByteArray &body = QByteArray());
71 #endif
72     void setHtml(const QString &html, const QUrl &baseUrl = QUrl());
73     void setHtml(const QByteArray &html, const QUrl &baseUrl = QUrl());
74     void setContent(const QByteArray &data, const QString &mimeType = QString(), const QUrl &baseUrl = QUrl());
75
76     void addToJSWindowObject(const QString &name, QObject *object);
77     QString markup() const;
78     QString innerText() const;
79     QString renderTreeDump() const;
80
81     QString title() const;
82     QUrl url() const;
83     QPixmap icon() const;
84     
85     QString name() const;
86
87     QList<QWebFrame*> childFrames() const;
88
89     Qt::ScrollBarPolicy verticalScrollBarPolicy() const;
90     void setVerticalScrollBarPolicy(Qt::ScrollBarPolicy);
91     Qt::ScrollBarPolicy horizontalScrollBarPolicy() const;
92     void setHorizontalScrollBarPolicy(Qt::ScrollBarPolicy);
93
94     void render(QPainter *painter, const QRect &source);
95     void layout();
96
97     QPoint pos() const;
98     QRect geometry() const;
99
100 public Q_SLOTS:
101     QString evaluateJavaScript(const QString& scriptSource);
102
103 Q_SIGNALS:
104     void cleared();
105     void loadDone(bool ok);
106     void provisionalLoad();
107     void titleChanged(const QString &title);
108     void hoveringOverLink(const QString &link, const QString &title, const QString &textContent);
109
110     void loadStarted();
111     void loadFinished();
112
113     /**
114       * Signal is emitted when the mainframe()'s initial layout is completed.
115      */
116     void initialLayoutComplete();
117     
118     /**
119      * Signal is emitted when an icon ("favicon") is loaded from the site.
120      */
121     void iconLoaded();
122
123 private:
124     friend class QWebPage;
125     friend class QWebPagePrivate;
126     friend class WebCore::WidgetPrivate;
127     friend class WebCore::FrameLoaderClientQt;
128     friend class WebCore::ChromeClientQt;
129     QWebFramePrivate *d;
130 };
131
132 #endif