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