summaryrefslogtreecommitdiffstats
path: root/qtinterface/qt4/Qt/qwebpage.h
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-08-02 19:12:15 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-08-02 19:12:15 +0000
commit4c3c7eaa2d225ecc0c16644f1a23e848bf539164 (patch)
treee2ec7ae4bdc3be1f6ffbc999802b6db8db1ad9c3 /qtinterface/qt4/Qt/qwebpage.h
parent60cbdb4674377338156be84fc3890358e44f23ba (diff)
downloadtqtinterface-4c3c7eaa2d225ecc0c16644f1a23e848bf539164.tar.gz
tqtinterface-4c3c7eaa2d225ecc0c16644f1a23e848bf539164.zip
Starting work on Qt4 interface...
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/dependencies/tqtinterface@1158413 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'qtinterface/qt4/Qt/qwebpage.h')
-rw-r--r--qtinterface/qt4/Qt/qwebpage.h388
1 files changed, 388 insertions, 0 deletions
diff --git a/qtinterface/qt4/Qt/qwebpage.h b/qtinterface/qt4/Qt/qwebpage.h
new file mode 100644
index 0000000..8c455b1
--- /dev/null
+++ b/qtinterface/qt4/Qt/qwebpage.h
@@ -0,0 +1,388 @@
+/*
+ Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
+ 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.
+*/
+
+#ifndef QWEBPAGE_H
+#define QWEBPAGE_H
+
+#include "qwebsettings.h"
+#include "qwebkitglobal.h"
+
+#include <QtCore/qobject.h>
+#include <QtCore/qurl.h>
+#include <QtGui/qwidget.h>
+
+QT_BEGIN_NAMESPACE
+class QNetworkProxy;
+class QUndoStack;
+class QMenu;
+class QNetworkRequest;
+class QNetworkReply;
+class QNetworkAccessManager;
+QT_END_NAMESPACE
+
+class QWebElement;
+class QWebFrame;
+class QWebNetworkRequest;
+class QWebHistory;
+
+class QWebPagePrivate;
+class QWebFrameData;
+class QWebNetworkInterface;
+class QWebPluginFactory;
+class QWebHitTestResult;
+class QWebHistoryItem;
+
+namespace WebCore {
+ class ChromeClientQt;
+ class EditorClientQt;
+ class FrameLoaderClientQt;
+ class InspectorClientQt;
+ class ResourceHandle;
+ class HitTestResult;
+ class QNetworkReplyHandler;
+
+ struct FrameLoadRequest;
+}
+
+class QWEBKIT_EXPORT QWebPage : public QObject {
+ Q_OBJECT
+
+ Q_PROPERTY(bool modified READ isModified)
+ Q_PROPERTY(QString selectedText READ selectedText)
+ Q_PROPERTY(QSize viewportSize READ viewportSize WRITE setViewportSize)
+ Q_PROPERTY(QSize preferredContentsSize READ preferredContentsSize WRITE setPreferredContentsSize)
+ Q_PROPERTY(bool forwardUnsupportedContent READ forwardUnsupportedContent WRITE setForwardUnsupportedContent)
+ Q_PROPERTY(LinkDelegationPolicy linkDelegationPolicy READ linkDelegationPolicy WRITE setLinkDelegationPolicy)
+ Q_PROPERTY(QPalette palette READ palette WRITE setPalette)
+ Q_PROPERTY(bool contentEditable READ isContentEditable WRITE setContentEditable)
+ Q_ENUMS(LinkDelegationPolicy NavigationType WebAction)
+public:
+ enum NavigationType {
+ NavigationTypeLinkClicked,
+ NavigationTypeFormSubmitted,
+ NavigationTypeBackOrForward,
+ NavigationTypeReload,
+ NavigationTypeFormResubmitted,
+ NavigationTypeOther
+ };
+
+ enum WebAction {
+ NoWebAction = - 1,
+
+ OpenLink,
+
+ OpenLinkInNewWindow,
+ OpenFrameInNewWindow,
+
+ DownloadLinkToDisk,
+ CopyLinkToClipboard,
+
+ OpenImageInNewWindow,
+ DownloadImageToDisk,
+ CopyImageToClipboard,
+
+ Back,
+ Forward,
+ Stop,
+ Reload,
+
+ Cut,
+ Copy,
+ Paste,
+
+ Undo,
+ Redo,
+ MoveToNextChar,
+ MoveToPreviousChar,
+ MoveToNextWord,
+ MoveToPreviousWord,
+ MoveToNextLine,
+ MoveToPreviousLine,
+ MoveToStartOfLine,
+ MoveToEndOfLine,
+ MoveToStartOfBlock,
+ MoveToEndOfBlock,
+ MoveToStartOfDocument,
+ MoveToEndOfDocument,
+ SelectNextChar,
+ SelectPreviousChar,
+ SelectNextWord,
+ SelectPreviousWord,
+ SelectNextLine,
+ SelectPreviousLine,
+ SelectStartOfLine,
+ SelectEndOfLine,
+ SelectStartOfBlock,
+ SelectEndOfBlock,
+ SelectStartOfDocument,
+ SelectEndOfDocument,
+ DeleteStartOfWord,
+ DeleteEndOfWord,
+
+ SetTextDirectionDefault,
+ SetTextDirectionLeftToRight,
+ SetTextDirectionRightToLeft,
+
+ ToggleBold,
+ ToggleItalic,
+ ToggleUnderline,
+
+ InspectElement,
+
+ InsertParagraphSeparator,
+ InsertLineSeparator,
+
+ SelectAll,
+ ReloadAndBypassCache,
+
+ PasteAndMatchStyle,
+ RemoveFormat,
+
+ ToggleStrikethrough,
+ ToggleSubscript,
+ ToggleSuperscript,
+ InsertUnorderedList,
+ InsertOrderedList,
+ Indent,
+ Outdent,
+
+ AlignCenter,
+ AlignJustified,
+ AlignLeft,
+ AlignRight,
+
+ WebActionCount
+ };
+
+ enum FindFlag {
+ FindBackward = 1,
+ FindCaseSensitively = 2,
+ FindWrapsAroundDocument = 4,
+ HighlightAllOccurrences = 8
+ };
+ Q_DECLARE_FLAGS(FindFlags, FindFlag)
+
+ enum LinkDelegationPolicy {
+ DontDelegateLinks,
+ DelegateExternalLinks,
+ DelegateAllLinks
+ };
+
+ enum WebWindowType {
+ WebBrowserWindow,
+ WebModalDialog
+ };
+
+ explicit QWebPage(QObject *parent = 0);
+ ~QWebPage();
+
+ QWebFrame *mainFrame() const;
+ QWebFrame *currentFrame() const;
+ QWebFrame* frameAt(const QPoint& pos) const;
+
+ QWebHistory *history() const;
+ QWebSettings *settings() const;
+
+ void setView(QWidget *view);
+ QWidget *view() const;
+
+ bool isModified() const;
+#ifndef QT_NO_UNDOSTACK
+ QUndoStack *undoStack() const;
+#endif
+
+#if QT_VERSION < 0x040400 && !defined(qdoc)
+ void setNetworkInterface(QWebNetworkInterface *interface);
+ QWebNetworkInterface *networkInterface() const;
+
+ // #### why is this in the page itself?
+#ifndef QT_NO_NETWORKPROXY
+ void setNetworkProxy(const QNetworkProxy& proxy);
+ QNetworkProxy networkProxy() const;
+#endif
+
+#else
+ void setNetworkAccessManager(QNetworkAccessManager *manager);
+ QNetworkAccessManager *networkAccessManager() const;
+#endif
+
+ void setPluginFactory(QWebPluginFactory *factory);
+ QWebPluginFactory *pluginFactory() const;
+
+ quint64 totalBytes() const;
+ quint64 bytesReceived() const;
+
+ QString selectedText() const;
+
+ QAction *action(WebAction action) const;
+ virtual void triggerAction(WebAction action, bool checked = false);
+
+ QSize viewportSize() const;
+ void setViewportSize(const QSize &size) const;
+
+ QSize preferredContentsSize() const;
+ void setPreferredContentsSize(const QSize &size) const;
+
+ virtual bool event(QEvent*);
+ bool focusNextPrevChild(bool next);
+
+ QVariant inputMethodQuery(Qt::InputMethodQuery property) const;
+
+ bool findText(const QString &subString, FindFlags options = 0);
+
+ void setForwardUnsupportedContent(bool forward);
+ bool forwardUnsupportedContent() const;
+
+ void setLinkDelegationPolicy(LinkDelegationPolicy policy);
+ LinkDelegationPolicy linkDelegationPolicy() const;
+
+ void setPalette(const QPalette &palette);
+ QPalette palette() const;
+
+ void setContentEditable(bool editable);
+ bool isContentEditable() const;
+
+#ifndef QT_NO_CONTEXTMENU
+ bool swallowContextMenuEvent(QContextMenuEvent *event);
+#endif
+ void updatePositionDependentActions(const QPoint &pos);
+
+ QMenu *createStandardContextMenu();
+
+ enum Extension {
+ ChooseMultipleFilesExtension,
+ ErrorPageExtension
+ };
+ class ExtensionOption
+ {};
+ class ExtensionReturn
+ {};
+
+ class ChooseMultipleFilesExtensionOption : public ExtensionOption {
+ public:
+ QWebFrame *parentFrame;
+ QStringList suggestedFileNames;
+ };
+
+ class ChooseMultipleFilesExtensionReturn : public ExtensionReturn {
+ public:
+ QStringList fileNames;
+ };
+
+ enum ErrorDomain { QtNetwork, Http, WebKit };
+ class ErrorPageExtensionOption : public ExtensionOption {
+ public:
+ QUrl url;
+ QWebFrame* frame;
+ ErrorDomain domain;
+ int error;
+ QString errorString;
+ };
+
+ class ErrorPageExtensionReturn : public ExtensionReturn {
+ public:
+ ErrorPageExtensionReturn() : contentType(QLatin1String("text/html")), encoding(QLatin1String("utf-8")) {};
+ QString contentType;
+ QString encoding;
+ QUrl baseUrl;
+ QByteArray content;
+ };
+
+
+ virtual bool extension(Extension extension, const ExtensionOption *option = 0, ExtensionReturn *output = 0);
+ virtual bool supportsExtension(Extension extension) const;
+
+ inline QWebPagePrivate* handle() const { return d; }
+
+public Q_SLOTS:
+ bool shouldInterruptJavaScript();
+
+Q_SIGNALS:
+ void loadStarted();
+ void loadProgress(int progress);
+ void loadFinished(bool ok);
+
+ void linkHovered(const QString &link, const QString &title, const QString &textContent);
+ void statusBarMessage(const QString& text);
+ void selectionChanged();
+ void frameCreated(QWebFrame *frame);
+ void geometryChangeRequested(const QRect& geom);
+ void repaintRequested(const QRect& dirtyRect);
+ void scrollRequested(int dx, int dy, const QRect& scrollViewRect);
+ void windowCloseRequested();
+ void printRequested(QWebFrame *frame);
+ void linkClicked(const QUrl &url);
+
+ void toolBarVisibilityChangeRequested(bool visible);
+ void statusBarVisibilityChangeRequested(bool visible);
+ void menuBarVisibilityChangeRequested(bool visible);
+
+#if QT_VERSION >= 0x040400
+ void unsupportedContent(QNetworkReply *reply);
+ void downloadRequested(const QNetworkRequest &request);
+#endif
+
+ void microFocusChanged();
+ void contentsChanged();
+ void databaseQuotaExceeded(QWebFrame* frame, QString databaseName);
+
+ void saveFrameStateRequested(QWebFrame* frame, QWebHistoryItem* item);
+ void restoreFrameStateRequested(QWebFrame* frame);
+
+protected:
+ virtual QWebPage *createWindow(WebWindowType type);
+ virtual QObject *createPlugin(const QString &classid, const QUrl &url, const QStringList &paramNames, const QStringList &paramValues);
+
+#if QT_VERSION >= 0x040400
+ virtual bool acceptNavigationRequest(QWebFrame *frame, const QNetworkRequest &request, NavigationType type);
+#else
+ virtual bool acceptNavigationRequest(QWebFrame *frame, const QWebNetworkRequest &request, NavigationType type);
+#endif
+ virtual QString chooseFile(QWebFrame *originatingFrame, const QString& oldFile);
+ virtual void javaScriptAlert(QWebFrame *originatingFrame, const QString& msg);
+ virtual bool javaScriptConfirm(QWebFrame *originatingFrame, const QString& msg);
+ virtual bool javaScriptPrompt(QWebFrame *originatingFrame, const QString& msg, const QString& defaultValue, QString* result);
+ virtual void javaScriptConsoleMessage(const QString& message, int lineNumber, const QString& sourceID);
+
+ virtual QString userAgentForUrl(const QUrl& url) const;
+
+private:
+ Q_PRIVATE_SLOT(d, void _q_onLoadProgressChanged(int))
+ Q_PRIVATE_SLOT(d, void _q_webActionTriggered(bool checked))
+ Q_PRIVATE_SLOT(d, void _q_cleanupLeakMessages())
+
+ QWebPagePrivate *d;
+
+ friend class QWebFrame;
+ friend class QWebPagePrivate;
+ friend class QWebView;
+ friend class QGraphicsWebView;
+ friend class QWebInspector;
+ friend class WebCore::ChromeClientQt;
+ friend class WebCore::EditorClientQt;
+ friend class WebCore::FrameLoaderClientQt;
+ friend class WebCore::InspectorClientQt;
+ friend class WebCore::ResourceHandle;
+ friend class WebCore::QNetworkReplyHandler;
+};
+
+Q_DECLARE_OPERATORS_FOR_FLAGS(QWebPage::FindFlags)
+
+#endif