[Qt][WK2] Split the QtWebPageProxy into PageClient and QtPageProxy
[WebKit.git] / Source / WebKit2 / UIProcess / qt / QtPageClient.h
1 /*
2  * Copyright (C) 2010, 2011 Nokia Corporation and/or its subsidiary(-ies)
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Library General Public
6  * License as published by the Free Software Foundation; either
7  * version 2 of the License, or (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Library General Public License for more details.
13  *
14  * You should have received a copy of the GNU Library General Public License
15  * along with this program; see the file COPYING.LIB.  If not, write to
16  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17  * Boston, MA 02110-1301, USA.
18  *
19  */
20
21 #ifndef QtPageClient_h
22 #define QtPageClient_h
23
24 #include "DrawingAreaProxy.h"
25 #include "LayerTreeContext.h"
26 #include "PageClient.h"
27 #include "ShareableBitmap.h"
28 #include "ViewportArguments.h"
29
30 class QtWebPageEventHandler;
31
32 using namespace WebKit;
33
34 class QtPageClient : public WebKit::PageClient {
35 public:
36     QtPageClient();
37     ~QtPageClient();
38
39     virtual PassOwnPtr<DrawingAreaProxy> createDrawingAreaProxy();
40     virtual void setViewNeedsDisplay(const WebCore::IntRect&);
41     virtual void displayView();
42     virtual void scrollView(const WebCore::IntRect& scrollRect, const WebCore::IntSize& scrollOffset);
43     virtual WebCore::IntSize viewSize();
44     virtual bool isViewWindowActive();
45     virtual bool isViewFocused();
46     virtual bool isViewVisible();
47     virtual bool isViewInWindow();
48 #if USE(ACCELERATED_COMPOSITING)
49     virtual void enterAcceleratedCompositingMode(const LayerTreeContext&);
50     virtual void exitAcceleratedCompositingMode();
51 #endif // USE(ACCELERATED_COMPOSITING)
52     virtual void pageDidRequestScroll(const WebCore::IntPoint&);
53     virtual void processDidCrash();
54     virtual void pageClosed() { }
55     virtual void didRelaunchProcess();
56     virtual void didChangeContentsSize(const WebCore::IntSize&);
57     virtual void didChangeViewportProperties(const WebCore::ViewportArguments&);
58     virtual void startDrag(const WebCore::DragData&, PassRefPtr<ShareableBitmap> dragImage);
59     virtual void setCursor(const WebCore::Cursor&);
60     virtual void setCursorHiddenUntilMouseMoves(bool);
61     virtual void toolTipChanged(const String&, const String&);
62     virtual void registerEditCommand(PassRefPtr<WebEditCommandProxy>, WebPageProxy::UndoOrRedo);
63     virtual void clearAllEditCommands();
64     virtual bool canUndoRedo(WebPageProxy::UndoOrRedo);
65     virtual void executeUndoRedo(WebPageProxy::UndoOrRedo);
66     virtual WebCore::FloatRect convertToDeviceSpace(const WebCore::FloatRect&);
67     virtual WebCore::FloatRect convertToUserSpace(const WebCore::FloatRect&);
68     virtual WebCore::IntPoint screenToWindow(const WebCore::IntPoint&);
69     virtual WebCore::IntRect windowToScreen(const WebCore::IntRect&);
70     virtual void doneWithKeyEvent(const NativeWebKeyboardEvent&, bool wasEventHandled) { }
71     virtual PassRefPtr<WebPopupMenuProxy> createPopupMenuProxy(WebPageProxy*);
72     virtual PassRefPtr<WebContextMenuProxy> createContextMenuProxy(WebPageProxy*);
73     virtual void setFindIndicator(PassRefPtr<FindIndicator>, bool fadeOut, bool animate) { }
74     virtual void didCommitLoadForMainFrame(bool useCustomRepresentation) { }
75     virtual void didFinishLoadingDataForCustomRepresentation(const String& suggestedFilename, const CoreIPC::DataReference&) { }
76     virtual double customRepresentationZoomFactor() { return 1; }
77     virtual void setCustomRepresentationZoomFactor(double) { }
78     virtual void didChangeScrollbarsForMainFrame() const { }
79     virtual void flashBackingStoreUpdates(const Vector<WebCore::IntRect>& updateRects);
80     virtual void findStringInCustomRepresentation(const String&, FindOptions, unsigned maxMatchCount) { }
81     virtual void countStringMatchesInCustomRepresentation(const String&, FindOptions, unsigned maxMatchCount) { }
82     virtual void didFindZoomableArea(const WebCore::IntPoint&, const WebCore::IntRect&);
83     virtual void didReceiveMessageFromNavigatorQtObject(const String&);
84     virtual void handleDownloadRequest(DownloadProxy*);
85
86 #if ENABLE(TOUCH_EVENTS)
87     virtual void doneWithTouchEvent(const NativeWebTouchEvent&, bool wasEventHandled);
88 #endif
89
90     void setEventHandler(QtWebPageEventHandler* eventHandler) { m_eventHandler = eventHandler; }
91     void setPageProxy(QtWebPageProxy* pageProxy) { m_qtWebPageProxy = pageProxy; }
92
93 private:
94     QtWebPageProxy* m_qtWebPageProxy;
95     QtWebPageEventHandler* m_eventHandler;
96 };
97
98 #endif /* QtPageClient_h */