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