webengine/osswebengine/WebKit/qt/Api/qwebpage.h
changeset 0 dd21522fd290
--- /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 <qwebkitglobal.h>
+
+#include <qwidget.h>
+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 &paramNames, const QStringList &paramValues);
+
+    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