WebKitTools:
[WebKit-https.git] / WebKitTools / DumpRenderTree / win / UIDelegate.h
1 /*
2  * Copyright (C) 2005, 2006, 2007 Apple Inc.  All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  *
8  * 1.  Redistributions of source code must retain the above copyright
9  *     notice, this list of conditions and the following disclaimer. 
10  * 2.  Redistributions in binary form must reproduce the above copyright
11  *     notice, this list of conditions and the following disclaimer in the
12  *     documentation and/or other materials provided with the distribution. 
13  * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
14  *     its contributors may be used to endorse or promote products derived
15  *     from this software without specific prior written permission. 
16  *
17  * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
18  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20  * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
21  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  */
28
29 #ifndef UIDelegate_h
30 #define UIDelegate_h
31
32 #include <WebKit/IWebUIDelegate.h>
33 #include <WebKit/IWebUIDelegatePrivate.h>
34 #include <windef.h>
35
36 class UIDelegate : public IWebUIDelegate, IWebUIDelegatePrivate {
37 public:
38     UIDelegate();
39
40     void processWork();
41
42     // IUnknown
43     virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
44     virtual ULONG STDMETHODCALLTYPE AddRef(void);
45     virtual ULONG STDMETHODCALLTYPE Release(void);
46
47     // IWebUIDelegate
48     virtual HRESULT STDMETHODCALLTYPE createWebViewWithRequest( 
49         /* [in] */ IWebView *sender,
50         /* [in] */ IWebURLRequest *request,
51         /* [retval][out] */ IWebView **newWebView) { return E_NOTIMPL; }
52
53     virtual HRESULT STDMETHODCALLTYPE webViewShow( 
54         /* [in] */ IWebView *sender) { return E_NOTIMPL; }
55
56     virtual HRESULT STDMETHODCALLTYPE webViewClose( 
57         /* [in] */ IWebView *sender) { return E_NOTIMPL; }
58
59     virtual HRESULT STDMETHODCALLTYPE webViewFocus( 
60         /* [in] */ IWebView *sender) { return E_NOTIMPL; }
61
62     virtual HRESULT STDMETHODCALLTYPE webViewUnfocus( 
63         /* [in] */ IWebView *sender) { return E_NOTIMPL; }
64
65     virtual HRESULT STDMETHODCALLTYPE webViewFirstResponder( 
66         /* [in] */ IWebView *sender,
67         /* [retval][out] */ OLE_HANDLE *responder) { return E_NOTIMPL; }
68
69     virtual HRESULT STDMETHODCALLTYPE makeFirstResponder( 
70         /* [in] */ IWebView *sender,
71         /* [in] */ OLE_HANDLE responder) { return E_NOTIMPL; }
72
73     virtual HRESULT STDMETHODCALLTYPE setStatusText( 
74         /* [in] */ IWebView *sender,
75         /* [in] */ BSTR text) { return E_NOTIMPL; }
76
77     virtual HRESULT STDMETHODCALLTYPE webViewStatusText( 
78         /* [in] */ IWebView *sender,
79         /* [retval][out] */ BSTR *text) { return E_NOTIMPL; }
80
81     virtual HRESULT STDMETHODCALLTYPE webViewAreToolbarsVisible( 
82         /* [in] */ IWebView *sender,
83         /* [retval][out] */ BOOL *visible) { return E_NOTIMPL; }
84
85     virtual HRESULT STDMETHODCALLTYPE setToolbarsVisible( 
86         /* [in] */ IWebView *sender,
87         /* [in] */ BOOL visible) { return E_NOTIMPL; }
88
89     virtual HRESULT STDMETHODCALLTYPE webViewIsStatusBarVisible( 
90         /* [in] */ IWebView *sender,
91         /* [retval][out] */ BOOL *visible) { return E_NOTIMPL; }
92
93     virtual HRESULT STDMETHODCALLTYPE setStatusBarVisible( 
94         /* [in] */ IWebView *sender,
95         /* [in] */ BOOL visible) { return E_NOTIMPL; }
96
97     virtual HRESULT STDMETHODCALLTYPE webViewIsResizable( 
98         /* [in] */ IWebView *sender,
99         /* [retval][out] */ BOOL *resizable) { return E_NOTIMPL; }
100
101     virtual HRESULT STDMETHODCALLTYPE setResizable( 
102         /* [in] */ IWebView *sender,
103         /* [in] */ BOOL resizable) { return E_NOTIMPL; }
104
105     virtual HRESULT STDMETHODCALLTYPE setFrame( 
106         /* [in] */ IWebView *sender,
107         /* [in] */ RECT *frame);
108
109     virtual HRESULT STDMETHODCALLTYPE webViewFrame( 
110         /* [in] */ IWebView *sender,
111         /* [retval][out] */ RECT *frame);
112
113     virtual HRESULT STDMETHODCALLTYPE setContentRect( 
114         /* [in] */ IWebView *sender,
115         /* [in] */ RECT *contentRect) { return E_NOTIMPL; }
116
117     virtual HRESULT STDMETHODCALLTYPE webViewContentRect( 
118         /* [in] */ IWebView *sender,
119         /* [retval][out] */ RECT *contentRect) { return E_NOTIMPL; }
120
121     virtual HRESULT STDMETHODCALLTYPE runJavaScriptAlertPanelWithMessage( 
122         /* [in] */ IWebView *sender,
123         /* [in] */ BSTR message);
124
125     virtual HRESULT STDMETHODCALLTYPE runJavaScriptConfirmPanelWithMessage( 
126         /* [in] */ IWebView *sender,
127         /* [in] */ BSTR message,
128         /* [retval][out] */ BOOL *result);
129
130     virtual HRESULT STDMETHODCALLTYPE runJavaScriptTextInputPanelWithPrompt( 
131         /* [in] */ IWebView *sender,
132         /* [in] */ BSTR message,
133         /* [in] */ BSTR defaultText,
134         /* [retval][out] */ BSTR *result);
135
136     virtual HRESULT STDMETHODCALLTYPE runBeforeUnloadConfirmPanelWithMessage( 
137         /* [in] */ IWebView *sender,
138         /* [in] */ BSTR message,
139         /* [in] */ IWebFrame *initiatedByFrame,
140         /* [retval][out] */ BOOL *result) { return E_NOTIMPL; } 
141
142     virtual HRESULT STDMETHODCALLTYPE runOpenPanelForFileButtonWithResultListener( 
143         /* [in] */ IWebView *sender,
144         /* [in] */ IWebOpenPanelResultListener *resultListener) { return E_NOTIMPL; }
145
146     virtual HRESULT STDMETHODCALLTYPE mouseDidMoveOverElement( 
147         /* [in] */ IWebView *sender,
148         /* [in] */ IPropertyBag *elementInformation,
149         /* [in] */ UINT modifierFlags) { return E_NOTIMPL; }
150
151     virtual HRESULT STDMETHODCALLTYPE contextMenuItemsForElement( 
152         /* [in] */ IWebView *sender,
153         /* [in] */ IPropertyBag *element,
154         /* [in] */ OLE_HANDLE defaultItems,
155         /* [retval][out] */ OLE_HANDLE *resultMenu) { return E_NOTIMPL; }
156
157     virtual HRESULT STDMETHODCALLTYPE validateUserInterfaceItem( 
158         /* [in] */ IWebView *webView,
159         /* [in] */ UINT itemCommandID,
160         /* [in] */ BOOL defaultValidation,
161         /* [retval][out] */ BOOL *isValid) { return E_NOTIMPL; }
162
163     virtual HRESULT STDMETHODCALLTYPE shouldPerformAction( 
164         /* [in] */ IWebView *webView,
165         /* [in] */ UINT itemCommandID,
166         /* [in] */ UINT sender) { return E_NOTIMPL; }
167
168     virtual HRESULT STDMETHODCALLTYPE dragDestinationActionMaskForDraggingInfo( 
169         /* [in] */ IWebView *webView,
170         /* [in] */ IDataObject *draggingInfo,
171         /* [retval][out] */ WebDragDestinationAction *action) { return E_NOTIMPL; }
172
173     virtual HRESULT STDMETHODCALLTYPE willPerformDragDestinationAction( 
174         /* [in] */ IWebView *webView,
175         /* [in] */ WebDragDestinationAction action,
176         /* [in] */ IDataObject *draggingInfo) { return E_NOTIMPL; }
177
178     virtual HRESULT STDMETHODCALLTYPE dragSourceActionMaskForPoint( 
179         /* [in] */ IWebView *webView,
180         /* [in] */ LPPOINT point,
181         /* [retval][out] */ WebDragSourceAction *action) { return E_NOTIMPL; }
182
183     virtual HRESULT STDMETHODCALLTYPE willPerformDragSourceAction( 
184         /* [in] */ IWebView *webView,
185         /* [in] */ WebDragSourceAction action,
186         /* [in] */ LPPOINT point,
187         /* [in] */ IDataObject *pasteboard) { return E_NOTIMPL; }
188
189     virtual HRESULT STDMETHODCALLTYPE contextMenuItemSelected( 
190         /* [in] */ IWebView *sender,
191         /* [in] */ void *item,
192         /* [in] */ IPropertyBag *element) { return E_NOTIMPL; } 
193         
194     virtual HRESULT STDMETHODCALLTYPE hasCustomMenuImplementation( 
195         /* [retval][out] */ BOOL *hasCustomMenus);
196     
197     virtual HRESULT STDMETHODCALLTYPE trackCustomPopupMenu( 
198         /* [in] */ IWebView *sender,
199         /* [in] */ OLE_HANDLE menu,
200         /* [in] */ LPPOINT point) { return E_NOTIMPL; }
201        
202     virtual HRESULT STDMETHODCALLTYPE measureCustomMenuItem( 
203         /* [in] */ IWebView *sender,
204         /* [in] */ void *measureItem) { return E_NOTIMPL; }
205         
206     virtual HRESULT STDMETHODCALLTYPE drawCustomMenuItem( 
207         /* [in] */ IWebView *sender,
208         /* [in] */ void *drawItem) { return E_NOTIMPL; }
209
210     virtual HRESULT STDMETHODCALLTYPE addCustomMenuDrawingData( 
211         /* [in] */ IWebView *sender,
212         /* [in] */ OLE_HANDLE menu) { return E_NOTIMPL; }
213
214     virtual HRESULT STDMETHODCALLTYPE cleanUpCustomMenuDrawingData( 
215         /* [in] */ IWebView *sender,
216         /* [in] */ OLE_HANDLE menu) { return E_NOTIMPL; }
217
218     virtual HRESULT STDMETHODCALLTYPE canTakeFocus( 
219         /* [in] */ IWebView *sender,
220         /* [in] */ BOOL forward,
221         /* [out] */ BOOL *result) { return E_NOTIMPL; }
222         
223     virtual HRESULT STDMETHODCALLTYPE takeFocus( 
224         /* [in] */ IWebView *sender,
225         /* [in] */ BOOL forward) { return E_NOTIMPL; }
226     
227     virtual HRESULT STDMETHODCALLTYPE registerUndoWithTarget( 
228         /* [in] */ IWebUndoTarget *target,
229         /* [in] */ BSTR actionName,
230         /* [in] */ IUnknown *actionArg) { return E_NOTIMPL; }
231     
232     virtual HRESULT STDMETHODCALLTYPE removeAllActionsWithTarget( 
233         /* [in] */ IWebUndoTarget *target) { return E_NOTIMPL; }
234     
235     virtual HRESULT STDMETHODCALLTYPE setActionTitle( 
236         /* [in] */ BSTR actionTitle) { return E_NOTIMPL; }
237     
238     virtual HRESULT STDMETHODCALLTYPE undo( void) { return E_NOTIMPL; }
239     
240     virtual HRESULT STDMETHODCALLTYPE redo( void) { return E_NOTIMPL; }
241     
242     virtual HRESULT STDMETHODCALLTYPE canUndo( 
243         /* [retval][out] */ BOOL *result) { return E_NOTIMPL; }
244     
245     virtual HRESULT STDMETHODCALLTYPE canRedo( 
246         /* [retval][out] */ BOOL *result) { return E_NOTIMPL; }
247
248 protected:
249     // IWebUIDelegatePrivate
250
251     virtual HRESULT STDMETHODCALLTYPE webViewResizerRect( 
252         /* [in] */ IWebView *sender,
253         /* [retval][out] */ RECT *rect) { return E_NOTIMPL; }
254     
255     virtual HRESULT STDMETHODCALLTYPE webViewDrawResizer( 
256         /* [in] */ IWebView *sender,
257         /* [in] */ HDC dc,
258         /* [in] */ BOOL overlapsContent,
259         /* [in] */ RECT *rect) { return E_NOTIMPL; }
260     
261     virtual HRESULT STDMETHODCALLTYPE webViewScrolled( 
262         /* [in] */ IWebView *sender) { return E_NOTIMPL; }
263     
264     virtual HRESULT STDMETHODCALLTYPE webViewAddMessageToConsole( 
265         /* [in] */ IWebView *sender,
266         /* [in] */ BSTR message,
267         /* [in] */ int lineNumber,
268         /* [in] */ BSTR url,
269         /* [in] */ BOOL isError);
270     
271     virtual HRESULT STDMETHODCALLTYPE webViewShouldInterruptJavaScript( 
272         /* [in] */ IWebView *sender,
273         /* [retval][out] */ BOOL *result) { return E_NOTIMPL; }
274     
275     virtual HRESULT STDMETHODCALLTYPE webViewReceivedFocus( 
276         /* [in] */ IWebView *sender) { return E_NOTIMPL; }
277     
278     virtual HRESULT STDMETHODCALLTYPE webViewLostFocus( 
279         /* [in] */ IWebView *sender,
280         /* [in] */ OLE_HANDLE loseFocusTo) { return E_NOTIMPL; }
281
282     virtual HRESULT STDMETHODCALLTYPE doDragDrop( 
283         /* [in] */ IWebView *sender,
284         /* [in] */ IDataObject *dataObject,
285         /* [in] */ IDropSource *dropSource,
286         /* [in] */ DWORD okEffect,
287         /* [retval][out] */ DWORD *performedEffect);
288
289     virtual HRESULT STDMETHODCALLTYPE webViewGetDlgCode( 
290         /* [in] */ IWebView *sender,
291         /* [in] */ UINT keyCode,
292         /* [retval][out] */ LONG_PTR *code);
293
294     ULONG                   m_refCount;
295
296 private:
297     RECT m_frame;
298 };
299
300 #endif