take a QString as identifier in QWebFrame::addToJSWindowObject.
[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
30 #include "qwebkitglobal.h"
31
32 class QRect;
33 class QPoint;
34 class QPainter;
35 class QPixmap;
36 class QMouseEvent;
37 class QWheelEvent;
38 class QWebNetworkRequest;
39
40 class QWebFramePrivate;
41 class QWebPage;
42
43 namespace WebCore {
44     class WidgetPrivate;
45     class FrameLoaderClientQt;
46     class ChromeClientQt;
47 }
48 class QWebFrameData;
49
50 class QWEBKIT_EXPORT QWebFrame : public QObject
51 {
52     Q_OBJECT
53 protected:
54     QWebFrame(QWebPage *parent, QWebFrameData *frameData);
55     QWebFrame(QWebFrame *parent, QWebFrameData *frameData);
56     ~QWebFrame();
57
58 public:
59     QWebPage *page() const;
60
61     void load(const QUrl &url);
62     void load(const QWebNetworkRequest &request);
63     void setHtml(const QString &html, const QUrl &baseUrl = QUrl());
64     void setHtml(const QByteArray &html, const QUrl &baseUrl = QUrl());
65     void setContent(const QByteArray &data, const QString &mimeType = QString(), const QUrl &baseUrl = QUrl());
66
67     void addToJSWindowObject(const QString &name, QObject *object);
68     QString markup() const;
69     QString innerText() const;
70     QString renderTreeDump() const;
71
72     QString title() const;
73     QUrl url() const;
74     QPixmap icon() const;
75     
76     QString name() const;
77
78     QList<QWebFrame*> childFrames() const;
79
80     Qt::ScrollBarPolicy verticalScrollBarPolicy() const;
81     void setVerticalScrollBarPolicy(Qt::ScrollBarPolicy);
82     Qt::ScrollBarPolicy horizontalScrollBarPolicy() const;
83     void setHorizontalScrollBarPolicy(Qt::ScrollBarPolicy);
84
85     void render(QPainter *painter, const QRect &source);
86     void layout();
87
88     QPoint pos() const;
89     QRect geometry() const;
90
91 public Q_SLOTS:
92     QString evaluateJavaScript(const QString& scriptSource);
93
94 Q_SIGNALS:
95     void cleared();
96     void loadDone(bool ok);
97     void provisionalLoad();
98     void titleChanged(const QString &title);
99     void hoveringOverLink(const QString &link, const QString &title, const QString &textContent);
100
101     void loadStarted();
102     void loadFinished();
103
104     /**
105       * Signal is emitted when the mainframe()'s initial layout is completed.
106      */
107     void initialLayoutComplete();
108     
109     /**
110      * Signal is emitted when an icon ("favicon") is loaded from the site.
111      */
112     void iconLoaded();
113
114 private:
115     friend class QWebPage;
116     friend class QWebPagePrivate;
117     friend class WebCore::WidgetPrivate;
118     friend class WebCore::FrameLoaderClientQt;
119     friend class WebCore::ChromeClientQt;
120     QWebFramePrivate *d;
121 };
122
123 #endif