Reviewed by Maciej
[WebKit-https.git] / WebKitQt / Api / qwebpage.h
1 /*
2     Copyright (C) 2007 Trolltech ASA
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 library 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 library; see the file COPYING.LIB.  If not, write to
16     the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17     Boston, MA 02111-1307, USA.
18
19     This class provides all functionality needed for loading images, style sheets and html
20     pages from the web. It has a memory cache for these objects.
21 */
22
23 #ifndef QWEBPAGE_H
24 #define QWEBPAGE_H
25
26 #include <qwidget.h>
27 class QWebFrame;
28 class QUrl;
29
30 class QWebPagePrivate;
31 class QWebFrameData;
32
33 namespace WebCore {
34     class FrameLoaderClientQt;
35 }
36
37 class QWebPage : public QWidget
38 {
39     Q_OBJECT
40 public:
41     QWebPage(QWidget *parent);
42     ~QWebPage();
43
44
45     void open(const QUrl &url);
46
47
48     QWebFrame *mainFrame() const;
49     
50     QSize sizeHint() const;
51
52 signals:
53     /**
54      * Signal is emitted when load is started on one of the child
55      * frames of the page. The frame on which the load started
56      * is passed.
57      */
58     void loadStarted(QWebFrame *frame);
59     /**
60      * Signal is emitted when the global progress status changes.
61      * It accumulates changes from all the child frames.
62      */
63     void loadProgressChanged(double progress);
64     /**
65      * Signal is emitted when load has been finished on one of
66      * the child frames of the page. The frame on which the
67      * load finished is passed as an argument.
68      */
69     void loadFinished(QWebFrame *frame);
70
71 protected:
72     virtual QWebFrame *createFrame(QWebFrame *parentFrame, QWebFrameData *frameData);
73     //virtual QWebPage *createPage(...);
74    
75 private:
76     friend class QWebFrame;
77     friend class QWebPagePrivate;
78     friend class WebCore::FrameLoaderClientQt;
79     QWebPagePrivate *d;
80 };
81
82
83
84 #endif