089a949a1d1118cde38aad1e94bd3c84df9f4c17
[WebKit-https.git] / WebKitQt / Api / qwebpage.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., 59 Temple Place - Suite 330,
18     Boston, MA 02111-1307, 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 QWEBPAGE_H
25 #define QWEBPAGE_H
26
27 #include "qwebpagehistory.h"
28 #include <qwebkitglobal.h>
29
30 #include <qwidget.h>
31 class QWebFrame;
32 class QUrl;
33
34 class QWebPagePrivate;
35 class QWebFrameData;
36
37 namespace WebCore {
38     class FrameLoaderClientQt;
39     class ChromeClientQt;
40     class FrameLoadRequest;
41 }
42
43 class QWEBKIT_EXPORT QWebPage : public QWidget
44 {
45     Q_OBJECT
46 public:
47     QWebPage(QWidget *parent);
48     ~QWebPage();
49
50
51     void open(const QUrl &url);
52
53     QWebFrame *mainFrame() const;
54
55     QWebFrame *focusFrame() const;
56
57     QWebPageHistory history() const;
58
59     QSize sizeHint() const;
60
61     QString title() const;
62
63     QUrl url() const;
64
65     virtual void javaScriptConsoleMessage(const QString& message, unsigned int lineNumber, const QString& sourceID);
66
67     virtual void statusTextChanged(const QString& text);
68
69     virtual void runJavaScriptAlert(QWebFrame *frame, const QString& msg);
70
71 public slots:
72     /**
73      * Stops loading of the page, if loading.
74      */
75     void stop();
76
77     void goBack();
78     void goForward();
79     void goToHistoryItem(const QWebHistoryItem &item);
80
81     virtual void setWindowGeometry(const QRect& geom);
82
83 signals:
84     /**
85      * Signal is emitted when load is started on one of the child
86      * frames of the page. The frame on which the load started
87      * is passed.
88      */
89     void loadStarted(QWebFrame *frame);
90     /**
91      * Signal is emitted when the global progress status changes.
92      * It accumulates changes from all the child frames.
93      */
94     void loadProgressChanged(double progress);
95     /**
96      * Signal is emitted when load has been finished on one of
97      * the child frames of the page. The frame on which the
98      * load finished is passed as an argument.
99      */
100     void loadFinished(QWebFrame *frame);
101     /**
102      * Signal is emitted when the title of this page has changed.
103      * Applies only to the main frame.  Sub-frame titles do not trigger this.
104      */
105     void titleChanged(const QString& title);
106
107 protected:
108     virtual QWebFrame *createFrame(QWebFrame *parentFrame, QWebFrameData *frameData);
109     virtual QWebPage *createWindow();
110
111 private:
112     friend class QWebFrame;
113     friend class QWebPagePrivate;
114     friend class WebCore::FrameLoaderClientQt;
115     friend class WebCore::ChromeClientQt;
116     QWebPagePrivate *d;
117 };
118
119
120
121 #endif