diff -r 000000000000 -r dd21522fd290 webengine/osswebengine/WebKit/qt/Api/qwebpage.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/webengine/osswebengine/WebKit/qt/Api/qwebpage.h Mon Mar 30 12:54:55 2009 +0300 @@ -0,0 +1,221 @@ +/* + Copyright (C) 2007 Trolltech ASA + Copyright (C) 2007 Staikos Computing Services Inc. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. + + This class provides all functionality needed for loading images, style sheets and html + pages from the web. It has a memory cache for these objects. +*/ + +#ifndef QWEBPAGE_H +#define QWEBPAGE_H + +#include "qwebpagehistory.h" +#include "qwebsettings.h" +#include + +#include +class QNetworkProxy; +class QUndoStack; +class QUrl; +class QWebFrame; +class QWebNetworkRequest; + +class QWebPagePrivate; +class QWebFrameData; +class QWebNetworkInterface; + +namespace WebCore { + class ChromeClientQt; + class FrameLoaderClientQt; + class FrameLoadRequest; + class EditorClientQt; + class ResourceHandle; +} + +class QWEBKIT_EXPORT QWebPage : public QWidget +{ + Q_OBJECT + + Q_PROPERTY(bool modified READ isModified) +public: + enum NavigationRequestResponse { + AcceptNavigationRequest, + IgnoreNavigationRequest + }; + + enum NavigationType { + NavigationTypeLinkClicked, + NavigationTypeFormSubmitted, + NavigationTypeBackForward, + NavigationTypeReload, + NavigationTypeFormResubmitted, + NavigationTypeOther + }; + + QWebPage(QWidget *parent); + ~QWebPage(); + + void open(const QUrl &url); + void open(const QWebNetworkRequest &request); + + QWebFrame *mainFrame() const; + + QWebPageHistory history() const; + + void setSettings(const QWebSettings &settings); + QWebSettings settings() const; + + QSize sizeHint() const; + + QString title() const; + + QUrl url() const; + + bool isModified() const; + + QUndoStack *undoStack(); + + void setNetworkInterface(QWebNetworkInterface *interface); + QWebNetworkInterface *networkInterface() const; + + QPixmap icon() const; + +#ifndef QT_NO_NETWORKPROXY + void setNetworkProxy(const QNetworkProxy& proxy); + QNetworkProxy networkProxy() const; +#endif + + bool canCut() const; + bool canCopy() const; + bool canPaste() const; + + quint64 totalBytes() const; + quint64 bytesReceived() const; + +public slots: + /** + * Stops loading of the page, if loading. + */ + void stop(); + + void goBack(); + void goForward(); + void goToHistoryItem(const QWebHistoryItem &item); + + virtual void setWindowGeometry(const QRect& geom); + + void cut(); + void copy(); + void paste(); + +signals: + /** + * Signal is emitted when load is started on one of the child + * frames of the page. The frame on which the load started + * is passed. + */ + void loadStarted(QWebFrame *frame); + /** + * Signal is emitted when the global progress status changes. + * It accumulates changes from all the child frames. + */ + void loadProgressChanged(int progress); + /** + * Signal is emitted when load has been finished on one of + * the child frames of the page. The frame on which the + * load finished is passed as an argument. + */ + void loadFinished(QWebFrame *frame); + /** + * Signal is emitted when the title of this page has changed. + * Applies only to the main frame. Sub-frame titles do not trigger this. + */ + void titleChanged(const QString& title); + /** + * Signal is emitted when the mouse is hovering over a link. + * The first parameter is the link url, the second is the link title + * if any. Method is emitter with both empty parameters when the mouse + * isn't hovering over any link element. + */ + void hoveringOverLink(const QString &link, const QString &title); + /** + * Signal is emitted when the statusbar text is changed by the page. + */ + void statusBarTextChanged(const QString& text); + /** + * Signal is emitted when an icon ("favicon") is loaded from the site. + */ + void iconLoaded(); + + void selectionChanged(); + + /** + * Signal is emitted when the mainframe()'s initial layout is completed. + */ + void initialLayoutComplete(); + + void addToHistory(const QUrl&); + +private slots: + void onLoadProgressChanged(int); + +protected: + virtual QWebFrame *createFrame(QWebFrame *parentFrame, QWebFrameData *frameData); + virtual QWebPage *createWindow(); + virtual QWebPage *createModalDialog(); + virtual QObject *createPlugin(const QString &classid, const QUrl &url, const QStringList ¶mNames, const QStringList ¶mValues); + + virtual NavigationRequestResponse navigationRequested(QWebFrame *frame, const QWebNetworkRequest &request, NavigationType type); + virtual QString chooseFile(QWebFrame *frame, const QString& oldFile); + virtual void javaScriptAlert(QWebFrame *frame, const QString& msg); + virtual bool javaScriptConfirm(QWebFrame *frame, const QString& msg); + virtual bool javaScriptPrompt(QWebFrame *frame, const QString& msg, const QString& defaultValue, QString* result); + virtual void javaScriptConsoleMessage(const QString& message, unsigned int lineNumber, const QString& sourceID); + virtual QString userAgentStringForUrl(const QUrl& forUrl) const; + + virtual void resizeEvent(QResizeEvent*); + virtual void paintEvent(QPaintEvent*); + virtual void mouseMoveEvent(QMouseEvent*); + virtual void mousePressEvent(QMouseEvent*); + virtual void mouseDoubleClickEvent(QMouseEvent*); + virtual void mouseReleaseEvent(QMouseEvent*); + virtual void wheelEvent(QWheelEvent*); + virtual void keyPressEvent(QKeyEvent*); + virtual void keyReleaseEvent(QKeyEvent*); + virtual void focusInEvent(QFocusEvent*); + virtual void focusOutEvent(QFocusEvent*); + virtual bool focusNextPrevChild(bool next); + + virtual void dragEnterEvent(QDragEnterEvent *); + virtual void dragLeaveEvent(QDragLeaveEvent *); + virtual void dragMoveEvent(QDragMoveEvent *); + virtual void dropEvent(QDropEvent *); + +private: + friend class QWebFrame; + friend class QWebPagePrivate; + friend class WebCore::ChromeClientQt; + friend class WebCore::EditorClientQt; + friend class WebCore::FrameLoaderClientQt; + friend class WebCore::ResourceHandle; + QWebPagePrivate *d; +}; + + + +#endif