Add an argument to pass the link text in the hovering signal
[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 <qobject.h>
28
29 #include <qwebkitglobal.h>
30
31 class QRect;
32 class QPoint;
33 class QPainter;
34 class QMouseEvent;
35 class QWheelEvent;
36
37 class QWebFramePrivate;
38 class QWebPage;
39
40 namespace WebCore {
41     class WidgetPrivate;
42     class FrameLoaderClientQt;
43     class ChromeClientQt;
44 }
45 class QWebFrameData;
46
47 class QWEBKIT_EXPORT QWebFrame : public QObject
48 {
49     Q_OBJECT
50 protected:
51     QWebFrame(QWebPage *parent, QWebFrameData *frameData);
52     QWebFrame(QWebFrame *parent, QWebFrameData *frameData);
53     ~QWebFrame();
54
55 public:
56     QWebPage *page() const;
57
58     void addToJSWindowObject(const QByteArray &name, QObject *object);
59     QString markup() const;
60     QString innerText() const;
61     QString renderTreeDump() const;
62     QString title() const;
63     QString name() const;
64
65     QList<QWebFrame*> childFrames() const;
66
67     Qt::ScrollBarPolicy verticalScrollBarPolicy() const;
68     void setVerticalScrollBarPolicy(Qt::ScrollBarPolicy);
69     Qt::ScrollBarPolicy horizontalScrollBarPolicy() const;
70     void setHorizontalScrollBarPolicy(Qt::ScrollBarPolicy);
71
72     void render(QPainter *painter, const QRect &source);
73     void layout();
74
75     QPoint pos() const;
76     QRect geometry() const;
77
78 public Q_SLOTS:
79     QString evaluateJavaScript(const QString& scriptSource);
80
81 signals:
82     void cleared();
83     void loadDone(bool ok);
84     void provisionalLoad();
85     void titleChanged(const QString &title);
86     void hoveringOverLink(const QString &link, const QString &title, const QString &textContent);
87
88 private:
89     friend class QWebPage;
90     friend class QWebPagePrivate;
91     friend class WebCore::WidgetPrivate;
92     friend class WebCore::FrameLoaderClientQt;
93     friend class WebCore::ChromeClientQt;
94     QWebFramePrivate *d;
95 };
96
97 #endif