1/*
2 * Copyright (C) 2008 Matt Lilek <webkit@mattlilek.com>
3 * Copyright (C) 2014 Apple Inc.  All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *
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 * 3.  Neither the name of Apple Inc. ("Apple") nor the names of
15 *     its contributors may be used to endorse or promote products derived
16 *     from this software without specific prior written permission.
17 *
18 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
19 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
22 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
24 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
25 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 */
29
30#ifndef WebInspectorDelegate_h
31#define WebInspectorDelegate_h
32
33#include "WebKit.h"
34
35class WebInspectorDelegate : public IWebUIDelegate {
36public:
37    static WebInspectorDelegate* createInstance();
38
39    // IUnknown
40    virtual ULONG STDMETHODCALLTYPE AddRef();
41    virtual ULONG STDMETHODCALLTYPE Release();
42    virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID, void**) { return E_NOTIMPL; };
43
44    // IWebUIDelegate
45    virtual HRESULT STDMETHODCALLTYPE dragDestinationActionMaskForDraggingInfo(
46        /* [in] */ IWebView*,
47        /* [in] */ IDataObject*,
48        /* [retval][out] */ WebDragDestinationAction* action);
49
50    // Not implemented
51    virtual HRESULT STDMETHODCALLTYPE createWebViewWithRequest(
52        /* [in] */ IWebView*,
53        /* [in] */ IWebURLRequest*,
54        /* [retval][out] */ IWebView**) { return E_NOTIMPL; }
55
56    virtual HRESULT STDMETHODCALLTYPE webViewShow(
57        /* [in] */ IWebView*) { return E_NOTIMPL; }
58
59    virtual HRESULT STDMETHODCALLTYPE webViewClose(
60        /* [in] */ IWebView*) { return E_NOTIMPL; }
61
62    virtual HRESULT STDMETHODCALLTYPE webViewFocus(
63        /* [in] */ IWebView*) { return E_NOTIMPL; }
64
65    virtual HRESULT STDMETHODCALLTYPE webViewUnfocus(
66        /* [in] */ IWebView*) { return E_NOTIMPL; }
67
68    virtual HRESULT STDMETHODCALLTYPE webViewFirstResponder(IWebView*, HWND*) { return E_NOTIMPL; }
69
70    virtual HRESULT STDMETHODCALLTYPE makeFirstResponder(IWebView*, HWND) { return E_NOTIMPL; }
71
72    virtual HRESULT STDMETHODCALLTYPE setStatusText(
73        /* [in] */ IWebView*,
74        /* [in] */ BSTR) { return E_NOTIMPL; }
75
76    virtual HRESULT STDMETHODCALLTYPE webViewStatusText(
77        /* [in] */ IWebView*,
78        /* [retval][out] */ BSTR*) { return E_NOTIMPL; }
79
80    virtual HRESULT STDMETHODCALLTYPE webViewAreToolbarsVisible(
81        /* [in] */ IWebView*,
82        /* [retval][out] */ BOOL*) { return E_NOTIMPL; }
83
84    virtual HRESULT STDMETHODCALLTYPE setToolbarsVisible(
85        /* [in] */ IWebView*,
86        /* [in] */ BOOL) { return E_NOTIMPL; }
87
88    virtual HRESULT STDMETHODCALLTYPE webViewIsStatusBarVisible(
89        /* [in] */ IWebView*,
90        /* [retval][out] */ BOOL*) { return E_NOTIMPL; }
91
92    virtual HRESULT STDMETHODCALLTYPE setStatusBarVisible(
93        /* [in] */ IWebView*,
94        /* [in] */ BOOL) { return E_NOTIMPL; }
95
96    virtual HRESULT STDMETHODCALLTYPE webViewIsResizable(
97        /* [in] */ IWebView*,
98        /* [retval][out] */ BOOL*) { return E_NOTIMPL; }
99
100    virtual HRESULT STDMETHODCALLTYPE setResizable(
101        /* [in] */ IWebView*,
102        /* [in] */ BOOL) { return E_NOTIMPL; }
103
104    virtual HRESULT STDMETHODCALLTYPE setFrame(
105        /* [in] */ IWebView*,
106        /* [in] */ RECT*) { return E_NOTIMPL; }
107
108    virtual HRESULT STDMETHODCALLTYPE webViewFrame(
109        /* [in] */ IWebView*,
110        /* [retval][out] */ RECT*) { return E_NOTIMPL; }
111
112    virtual HRESULT STDMETHODCALLTYPE setContentRect(
113        /* [in] */ IWebView*,
114        /* [in] */ RECT*) { return E_NOTIMPL; }
115
116    virtual HRESULT STDMETHODCALLTYPE webViewContentRect(
117        /* [in] */ IWebView*,
118        /* [retval][out] */ RECT*) { return E_NOTIMPL; }
119
120    virtual HRESULT STDMETHODCALLTYPE runJavaScriptAlertPanelWithMessage(
121        /* [in] */ IWebView*,
122        /* [in] */ BSTR) { return E_NOTIMPL; }
123
124    virtual HRESULT STDMETHODCALLTYPE runJavaScriptConfirmPanelWithMessage(
125        /* [in] */ IWebView*,
126        /* [in] */ BSTR,
127        /* [retval][out] */ BOOL*) { return E_NOTIMPL; }
128
129    virtual HRESULT STDMETHODCALLTYPE runJavaScriptTextInputPanelWithPrompt(
130        /* [in] */ IWebView*,
131        /* [in] */ BSTR /*message*/,
132        /* [in] */ BSTR /*defaultText*/,
133        /* [retval][out] */ BSTR*) { return E_NOTIMPL; }
134
135    virtual HRESULT STDMETHODCALLTYPE runBeforeUnloadConfirmPanelWithMessage(
136        /* [in] */ IWebView*,
137        /* [in] */ BSTR /*message*/,
138        /* [in] */ IWebFrame*  /*initiatedByFrame*/,
139        /* [retval][out] */ BOOL*) { return E_NOTIMPL; }
140
141    virtual HRESULT STDMETHODCALLTYPE runOpenPanelForFileButtonWithResultListener(
142        /* [in] */ IWebView*,
143        /* [in] */ IWebOpenPanelResultListener*) { return E_NOTIMPL; }
144
145    virtual HRESULT STDMETHODCALLTYPE mouseDidMoveOverElement(
146        /* [in] */ IWebView*,
147        /* [in] */ IPropertyBag*,
148        /* [in] */ UINT /*modifierFlags*/) { return E_NOTIMPL; }
149
150    virtual HRESULT STDMETHODCALLTYPE contextMenuItemsForElement(IWebView*, IPropertyBag*, HMENU, HMENU*) { return E_NOTIMPL; }
151
152    virtual HRESULT STDMETHODCALLTYPE validateUserInterfaceItem(
153        /* [in] */ IWebView*,
154        /* [in] */ UINT,
155        /* [in] */ BOOL,
156        /* [retval][out] */ BOOL*) { return E_NOTIMPL; }
157
158    virtual HRESULT STDMETHODCALLTYPE shouldPerformAction(
159        /* [in] */ IWebView*,
160        /* [in] */ UINT /*itemCommandID*/,
161        /* [in] */ UINT /*sender*/) { return E_NOTIMPL; }
162
163    virtual HRESULT STDMETHODCALLTYPE willPerformDragDestinationAction(
164        /* [in] */ IWebView*,
165        /* [in] */ WebDragDestinationAction,
166        /* [in] */ IDataObject*) { return E_NOTIMPL; }
167
168    virtual HRESULT STDMETHODCALLTYPE dragSourceActionMaskForPoint(
169        /* [in] */ IWebView*,
170        /* [in] */ LPPOINT,
171        /* [retval][out] */ WebDragSourceAction*) { return E_NOTIMPL; }
172
173    virtual HRESULT STDMETHODCALLTYPE willPerformDragSourceAction(
174        /* [in] */ IWebView*,
175        /* [in] */ WebDragSourceAction,
176        /* [in] */ LPPOINT,
177        /* [in] */ IDataObject*,
178        /* [retval][out] */ IDataObject**) { return E_NOTIMPL; }
179
180    virtual HRESULT STDMETHODCALLTYPE contextMenuItemSelected(
181        /* [in] */ IWebView*,
182        /* [in] */ void*  /*item*/,
183        /* [in] */ IPropertyBag*) { return E_NOTIMPL; }
184
185    virtual HRESULT STDMETHODCALLTYPE hasCustomMenuImplementation(
186        /* [retval][out] */ BOOL*) { return E_NOTIMPL; }
187
188    virtual HRESULT STDMETHODCALLTYPE trackCustomPopupMenu(/* [in] */ IWebView*, /* [in] */ HMENU, /* [in] */ LPPOINT) { return E_NOTIMPL; }
189
190    virtual HRESULT STDMETHODCALLTYPE measureCustomMenuItem(
191        /* [in] */ IWebView*,
192        /* [in] */ void*  /*measureItem*/) { return E_NOTIMPL; }
193
194    virtual HRESULT STDMETHODCALLTYPE drawCustomMenuItem(
195        /* [in] */ IWebView*,
196        /* [in] */ void*  /*drawItem*/) { return E_NOTIMPL; }
197
198    virtual HRESULT STDMETHODCALLTYPE addCustomMenuDrawingData(/* [in] */ IWebView*, /* [in] */ HMENU) { return E_NOTIMPL; }
199
200    virtual HRESULT STDMETHODCALLTYPE cleanUpCustomMenuDrawingData(/* [in] */ IWebView*, /* [in] */ HMENU) { return E_NOTIMPL; }
201
202    virtual HRESULT STDMETHODCALLTYPE canTakeFocus(
203        /* [in] */ IWebView*,
204        /* [in] */ BOOL /*forward*/,
205        /* [out] */ BOOL*) { return E_NOTIMPL; }
206
207    virtual HRESULT STDMETHODCALLTYPE takeFocus(
208        /* [in] */ IWebView*,
209        /* [in] */ BOOL /*forward*/) { return E_NOTIMPL; }
210
211    virtual HRESULT STDMETHODCALLTYPE registerUndoWithTarget(
212        /* [in] */ IWebUndoTarget*,
213        /* [in] */ BSTR /*actionName*/,
214        /* [in] */ IUnknown*  /*actionArg*/) { return E_NOTIMPL; }
215
216    virtual HRESULT STDMETHODCALLTYPE removeAllActionsWithTarget(
217        /* [in] */ IWebUndoTarget*) { return E_NOTIMPL; }
218
219    virtual HRESULT STDMETHODCALLTYPE setActionTitle(
220        /* [in] */ BSTR) { return E_NOTIMPL; }
221
222    virtual HRESULT STDMETHODCALLTYPE undo() { return E_NOTIMPL; }
223
224    virtual HRESULT STDMETHODCALLTYPE redo() { return E_NOTIMPL; }
225
226    virtual HRESULT STDMETHODCALLTYPE canUndo(
227        /* [retval][out] */ BOOL*) { return E_NOTIMPL; }
228
229    virtual HRESULT STDMETHODCALLTYPE canRedo(
230        /* [retval][out] */ BOOL*) { return E_NOTIMPL; }
231
232    virtual HRESULT STDMETHODCALLTYPE printFrame(
233        /* [in] */ IWebView *webView,
234        /* [in] */ IWebFrame *frame) { return E_NOTIMPL; }
235
236    virtual HRESULT STDMETHODCALLTYPE ftpDirectoryTemplatePath(
237        /* [in] */ IWebView *webView,
238        /* [retval][out] */ BSTR *path) { return E_NOTIMPL; }
239
240    virtual HRESULT STDMETHODCALLTYPE webViewHeaderHeight(
241        /* [in] */ IWebView *webView,
242        /* [retval][out] */ float *result) { return E_NOTIMPL; }
243
244    virtual HRESULT STDMETHODCALLTYPE webViewFooterHeight(
245        /* [in] */ IWebView *webView,
246        /* [retval][out] */ float *result) { return E_NOTIMPL; }
247
248    virtual HRESULT STDMETHODCALLTYPE drawHeaderInRect(IWebView*, RECT*, ULONG_PTR) { return E_NOTIMPL; }
249
250    virtual HRESULT STDMETHODCALLTYPE drawFooterInRect(IWebView*, RECT*, ULONG_PTR, UINT, UINT) { return E_NOTIMPL; }
251
252    virtual HRESULT STDMETHODCALLTYPE webViewPrintingMarginRect(
253        /* [in] */ IWebView *webView,
254        /* [retval][out] */ RECT *rect) { return E_NOTIMPL; }
255
256    virtual HRESULT STDMETHODCALLTYPE canRunModal(
257        /* [in] */ IWebView *webView,
258        /* [retval][out] */ BOOL *canRunBoolean) { return E_NOTIMPL; }
259
260    virtual HRESULT STDMETHODCALLTYPE createModalDialog(
261        /* [in] */ IWebView *sender,
262        /* [in] */ IWebURLRequest *request,
263        /* [retval][out] */ IWebView **newWebView) { return E_NOTIMPL; }
264
265    virtual HRESULT STDMETHODCALLTYPE runModal(
266        /* [in] */ IWebView *webView) { return E_NOTIMPL; }
267
268    virtual HRESULT STDMETHODCALLTYPE isMenuBarVisible(
269        /* [in] */ IWebView *webView,
270        /* [retval][out] */ BOOL *visible) { return E_NOTIMPL; }
271
272    virtual HRESULT STDMETHODCALLTYPE setMenuBarVisible(
273        /* [in] */ IWebView *webView,
274        /* [in] */ BOOL visible) { return E_NOTIMPL; }
275
276    virtual HRESULT STDMETHODCALLTYPE runDatabaseSizeLimitPrompt(
277        /* [in] */ IWebView *webView,
278        /* [in] */ BSTR displayName,
279        /* [in] */ IWebFrame *initiatedByFrame,
280        /* [retval][out] */ BOOL *allowed) { return E_NOTIMPL; }
281
282    virtual HRESULT STDMETHODCALLTYPE paintCustomScrollbar(
283        /* [in] */ IWebView *webView,
284        /* [in] */ HDC hDC,
285        /* [in] */ RECT rect,
286        /* [in] */ WebScrollBarControlSize size,
287        /* [in] */ WebScrollbarControlState state,
288        /* [in] */ WebScrollbarControlPart pressedPart,
289        /* [in] */ BOOL vertical,
290        /* [in] */ float value,
291        /* [in] */ float proportion,
292        /* [in] */ WebScrollbarControlPartMask parts) { return E_NOTIMPL; }
293
294    virtual HRESULT STDMETHODCALLTYPE paintCustomScrollCorner(
295        /* [in] */ IWebView *webView,
296        /* [in] */ HDC hDC,
297        /* [in] */ RECT rect) { return E_NOTIMPL; }
298
299    virtual HRESULT STDMETHODCALLTYPE desktopNotificationsDelegate(
300        /* [retval][out] */ IWebDesktopNotificationsDelegate **result) { return E_NOTIMPL; }
301
302private:
303    WebInspectorDelegate();
304
305    ULONG m_refCount;
306};
307
308#endif // WebInspectorDelegate_h
309