[Qt][GTK] Build fix after r151403
[WebKit-https.git] / Source / WebKit2 / UIProcess / API / gtk / PageClientImpl.h
1 /*
2  * Copyright (C) 2010 Apple Inc. All rights reserved.
3  * Portions Copyright (c) 2010 Motorola Mobility, Inc.  All rights reserved.
4  * Copyright (C) 2011 Igalia S.L.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions
8  * are met:
9  * 1. Redistributions of source code must retain the above copyright
10  *    notice, this list of conditions and the following disclaimer.
11  * 2. Redistributions in binary form must reproduce the above copyright
12  *    notice, this list of conditions and the following disclaimer in the
13  *    documentation and/or other materials provided with the distribution.
14  *
15  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
16  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
17  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
18  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
19  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
25  * THE POSSIBILITY OF SUCH DAMAGE.
26  */
27
28 #ifndef PageClientImpl_h
29 #define PageClientImpl_h
30
31 #include "KeyBindingTranslator.h"
32 #include "PageClient.h"
33 #include "WebPageProxy.h"
34 #include "WindowsKeyboardCodes.h"
35 #include <WebCore/IntSize.h>
36 #include <gtk/gtk.h>
37
38 namespace WebKit {
39
40 class DrawingAreaProxy;
41 class WebPageNamespace;
42
43 class PageClientImpl : public PageClient {
44 public:
45     ~PageClientImpl();
46     static PassOwnPtr<PageClientImpl> create(GtkWidget* viewWidget)
47     {
48         return adoptPtr(new PageClientImpl(viewWidget));
49     }
50
51     GtkWidget* viewWidget() { return m_viewWidget; }
52
53 private:
54     explicit PageClientImpl(GtkWidget*);
55
56     virtual PassOwnPtr<DrawingAreaProxy> createDrawingAreaProxy();
57     virtual void setViewNeedsDisplay(const WebCore::IntRect&);
58     virtual void displayView();
59     virtual bool canScrollView() { return false; }
60     virtual void scrollView(const WebCore::IntRect& scrollRect, const WebCore::IntSize& scrollOffset);
61     virtual WebCore::IntSize viewSize();
62     virtual bool isViewWindowActive();
63     virtual bool isViewFocused();
64     virtual bool isViewVisible();
65     virtual bool isViewInWindow();
66     virtual void processDidCrash();
67     virtual void didRelaunchProcess();
68     virtual void pageClosed();
69     virtual void preferencesDidChange();
70     virtual void takeFocus(bool direction);
71     virtual void toolTipChanged(const WTF::String&, const WTF::String&);
72     virtual void setCursor(const WebCore::Cursor&);
73     virtual void setCursorHiddenUntilMouseMoves(bool);
74     virtual void didChangeViewportProperties(const WebCore::ViewportAttributes&);
75     virtual void registerEditCommand(PassRefPtr<WebEditCommandProxy>, WebPageProxy::UndoOrRedo);
76     virtual void clearAllEditCommands();
77     virtual bool canUndoRedo(WebPageProxy::UndoOrRedo);
78     virtual void executeUndoRedo(WebPageProxy::UndoOrRedo);
79     virtual WebCore::FloatRect convertToDeviceSpace(const WebCore::FloatRect&);
80     virtual WebCore::FloatRect convertToUserSpace(const WebCore::FloatRect&);
81     virtual WebCore::IntPoint screenToWindow(const WebCore::IntPoint&);
82     virtual WebCore::IntRect windowToScreen(const WebCore::IntRect&);
83     virtual void doneWithKeyEvent(const NativeWebKeyboardEvent&, bool wasEventHandled);
84     virtual PassRefPtr<WebPopupMenuProxy> createPopupMenuProxy(WebPageProxy*);
85     virtual PassRefPtr<WebContextMenuProxy> createContextMenuProxy(WebPageProxy*);
86 #if ENABLE(INPUT_TYPE_COLOR)
87     virtual PassRefPtr<WebColorChooserProxy> createColorChooserProxy(WebPageProxy*, const WebCore::Color& intialColor, const WebCore::IntRect&);
88 #endif
89     virtual void setFindIndicator(PassRefPtr<FindIndicator>, bool fadeOut, bool animate);
90     virtual void flashBackingStoreUpdates(const Vector<WebCore::IntRect>& updateRects);
91     virtual void getEditorCommandsForKeyEvent(const NativeWebKeyboardEvent&, const AtomicString&, Vector<WTF::String>&);
92     virtual void findStringInCustomRepresentation(const String&, FindOptions, unsigned);
93     virtual void countStringMatchesInCustomRepresentation(const String&, FindOptions, unsigned);
94     virtual void updateTextInputState();
95     virtual void startDrag(const WebCore::DragData&, PassRefPtr<ShareableBitmap> dragImage);
96
97 #if USE(ACCELERATED_COMPOSITING)
98     virtual void enterAcceleratedCompositingMode(const LayerTreeContext&);
99     virtual void exitAcceleratedCompositingMode();
100     virtual void updateAcceleratedCompositingMode(const LayerTreeContext&);
101 #endif
102
103     virtual void didCommitLoadForMainFrame(bool useCustomRepresentation);
104     virtual void didFinishLoadingDataForCustomRepresentation(const String& suggestedFilename, const CoreIPC::DataReference&);
105     virtual double customRepresentationZoomFactor();
106     virtual void setCustomRepresentationZoomFactor(double);
107
108     virtual void handleDownloadRequest(DownloadProxy*);
109
110     // Members of PageClientImpl class
111     GtkWidget* m_viewWidget;
112     WebCore::KeyBindingTranslator m_keyBindingTranslator;
113 };
114
115 } // namespace WebKit
116
117 #endif // PageClientImpl_h