diff -r 000000000000 -r 4f2f89ce4247 WebKit/qt/Api/qwebpage_p.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WebKit/qt/Api/qwebpage_p.h Fri Sep 17 09:02:29 2010 +0300 @@ -0,0 +1,210 @@ +/* + Copyright (C) 2008, 2009 Nokia Corporation and/or its subsidiary(-ies) + Copyright (C) 2008 Holger Hans Peter Freyther + + 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_P_H +#define QWEBPAGE_P_H + +#include +#include +#include +#include +#include + +#include "qwebpage.h" +#include "qwebhistory.h" +#include "qwebframe.h" + +#include "KURL.h" +#include "PlatformString.h" + +#include + +namespace WebCore { + class ChromeClientQt; + class ContextMenuClientQt; + class ContextMenuItem; + class ContextMenu; + class EditorClientQt; + class Element; + class InspectorController; + class Node; + class Page; + class Frame; +} + +QT_BEGIN_NAMESPACE +class QUndoStack; +class QMenu; +class QBitArray; +QT_END_NAMESPACE + +class QWebInspector; +class QWebPageClient; + +class QtViewportHintsPrivate : public QSharedData { +public: + QtViewportHintsPrivate(QWebPage::ViewportHints* qq) + : q(qq) + { } + + QWebPage::ViewportHints* q; +}; + +class QWebPagePrivate { +public: + QWebPagePrivate(QWebPage*); + ~QWebPagePrivate(); + + static WebCore::Page* core(QWebPage*); + static QWebPagePrivate* priv(QWebPage*); + + void createMainFrame(); +#ifndef QT_NO_CONTEXTMENU + QMenu* createContextMenu(const WebCore::ContextMenu* webcoreMenu, const QList* items, QBitArray* visitedWebActions); +#endif + void _q_onLoadProgressChanged(int); + void _q_webActionTriggered(bool checked); + void _q_cleanupLeakMessages(); + void updateAction(QWebPage::WebAction action); + void updateNavigationActions(); + void updateEditorActions(); + + void timerEvent(QTimerEvent*); + + void mouseMoveEvent(QMouseEvent*); + void mouseMoveEvent(QGraphicsSceneMouseEvent*); + void mousePressEvent(QMouseEvent*); + void mousePressEvent(QGraphicsSceneMouseEvent*); + void mouseDoubleClickEvent(QMouseEvent*); + void mouseDoubleClickEvent(QGraphicsSceneMouseEvent*); + void mouseTripleClickEvent(QMouseEvent*); + void mouseTripleClickEvent(QGraphicsSceneMouseEvent*); + void mouseReleaseEvent(QMouseEvent*); + void mouseReleaseEvent(QGraphicsSceneMouseEvent*); +#ifndef QT_NO_CONTEXTMENU + void contextMenuEvent(const QPoint& globalPos); +#endif +#ifndef QT_NO_WHEELEVENT + void wheelEvent(QWheelEvent*); + void wheelEvent(QGraphicsSceneWheelEvent*); +#endif + void keyPressEvent(QKeyEvent*); + void keyReleaseEvent(QKeyEvent*); + void focusInEvent(QFocusEvent*); + void focusOutEvent(QFocusEvent*); + + void dragEnterEvent(QDragEnterEvent*); + void dragEnterEvent(QGraphicsSceneDragDropEvent*); + void dragLeaveEvent(QDragLeaveEvent*); + void dragLeaveEvent(QGraphicsSceneDragDropEvent*); + void dragMoveEvent(QDragMoveEvent*); + void dragMoveEvent(QGraphicsSceneDragDropEvent*); + void dropEvent(QDropEvent*); + void dropEvent(QGraphicsSceneDragDropEvent*); + + void inputMethodEvent(QInputMethodEvent*); + +#ifndef QT_NO_PROPERTIES + void dynamicPropertyChangeEvent(QDynamicPropertyChangeEvent*); +#endif + + void shortcutOverrideEvent(QKeyEvent*); + void leaveEvent(QEvent*); + void handleClipboard(QEvent*, Qt::MouseButton); + void handleSoftwareInputPanel(Qt::MouseButton); + bool handleScrolling(QKeyEvent*, WebCore::Frame*); + +#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0) + // Returns whether the default action was cancelled in the JS event handler + bool touchEvent(QTouchEvent*); +#endif + + void setInspector(QWebInspector*); + QWebInspector* getOrCreateInspector(); + WebCore::InspectorController* inspectorController(); + +#ifndef QT_NO_SHORTCUT + static QWebPage::WebAction editorActionForKeyEvent(QKeyEvent* event); +#endif + static const char* editorCommandForWebActions(QWebPage::WebAction action); + + WebCore::ChromeClientQt *chromeClient; + WebCore::ContextMenuClientQt *contextMenuClient; + WebCore::EditorClientQt *editorClient; + WebCore::Page *page; + + QPointer mainFrame; + + QWebPage *q; + QWebPageClient* client; +#ifndef QT_NO_UNDOSTACK + QUndoStack *undoStack; +#endif + +#if QT_VERSION >= 0x040600 + QWeakPointer view; +#else + QWidget* view; +#endif + + bool insideOpenCall; + quint64 m_totalBytes; + quint64 m_bytesReceived; + + QPoint tripleClick; + QBasicTimer tripleClickTimer; + + bool clickCausedFocus; + + bool acceptNavigationRequest(QWebFrame *frame, const QNetworkRequest &request, QWebPage::NavigationType type); + QNetworkAccessManager *networkManager; + + bool forwardUnsupportedContent; + bool smartInsertDeleteEnabled; + bool selectTrailingWhitespaceEnabled; + QWebPage::LinkDelegationPolicy linkPolicy; + + QSize viewportSize; + QSize fixedLayoutSize; + QWebHistory history; + QWebHitTestResult hitTestResult; +#ifndef QT_NO_CONTEXTMENU + QPointer currentContextMenu; +#endif + QWebSettings *settings; + QPalette palette; + bool editable; + bool useFixedLayout; + + QAction *actions[QWebPage::WebActionCount]; + + QWebPluginFactory *pluginFactory; + + QWidget* inspectorFrontend; + QWebInspector* inspector; + bool inspectorIsInternalOnly; // True if created through the Inspect context menu action + Qt::DropAction m_lastDropAction; + + QString viewMode; + + static bool drtRun; +}; + +#endif