2 * Copyright (C) 2006 Apple Computer, Inc. All rights reserved.
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
13 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33 class WebBackForwardList;
35 class WebView : public IWebView, public IWebViewExt, public IWebIBActions, public IWebViewCSS, public IWebViewEditing, public IWebViewUndoableEditing, public IWebViewEditingActions
38 static WebView* createInstance();
45 virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
46 virtual ULONG STDMETHODCALLTYPE AddRef(void);
47 virtual ULONG STDMETHODCALLTYPE Release(void);
51 virtual HRESULT STDMETHODCALLTYPE canShowMIMEType(
52 /* [in] */ BSTR mimeType,
53 /* [retval][out] */ BOOL *canShow);
55 virtual HRESULT STDMETHODCALLTYPE canShowMIMETypeAsHTML(
56 /* [in] */ BSTR mimeType,
57 /* [retval][out] */ BOOL *canShow);
59 virtual HRESULT STDMETHODCALLTYPE MIMETypesShownAsHTML(
60 /* [out] */ int *count,
61 /* [retval][out] */ BSTR **mimeTypes);
63 virtual HRESULT STDMETHODCALLTYPE setMIMETypesShownAsHTML(
64 /* [size_is][in] */ BSTR *mimeTypes,
65 /* [in] */ int cMimeTypes);
67 virtual HRESULT STDMETHODCALLTYPE URLFromPasteboard(
68 /* [in] */ IDataObject *pasteboard,
69 /* [retval][out] */ BSTR *url);
71 virtual HRESULT STDMETHODCALLTYPE URLTitleFromPasteboard(
72 /* [in] */ IDataObject *pasteboard,
73 /* [retval][out] */ BSTR *urlTitle);
75 virtual HRESULT STDMETHODCALLTYPE initWithFrame(
76 /* [in] */ RECT *frame,
77 /* [in] */ BSTR frameName,
78 /* [in] */ BSTR groupName);
80 virtual HRESULT STDMETHODCALLTYPE setUIDelegate(
81 /* [in] */ IWebUIDelegate *d);
83 virtual HRESULT STDMETHODCALLTYPE uiDelegate(
84 /* [out][retval] */ IWebUIDelegate **d);
86 virtual HRESULT STDMETHODCALLTYPE setResourceLoadDelegate(
87 /* [in] */ IWebResourceLoadDelegate *d);
89 virtual HRESULT STDMETHODCALLTYPE resourceLoadDelegate(
90 /* [out][retval] */ IWebResourceLoadDelegate **d);
92 virtual HRESULT STDMETHODCALLTYPE setDownloadDelegate(
93 /* [in] */ IWebDownloadDelegate *d);
95 virtual HRESULT STDMETHODCALLTYPE downloadDelegate(
96 /* [out][retval] */ IWebDownloadDelegate **d);
98 virtual HRESULT STDMETHODCALLTYPE setFrameLoadDelegate(
99 /* [in] */ IWebFrameLoadDelegate *d);
101 virtual HRESULT STDMETHODCALLTYPE frameLoadDelegate(
102 /* [out][retval] */ IWebFrameLoadDelegate **d);
104 virtual HRESULT STDMETHODCALLTYPE setPolicyDelegate(
105 /* [in] */ IWebPolicyDelegate *d);
107 virtual HRESULT STDMETHODCALLTYPE policyDelegate(
108 /* [out][retval] */ IWebPolicyDelegate **d);
110 virtual HRESULT STDMETHODCALLTYPE mainFrame(
111 /* [out][retval] */ IWebFrame **frame);
113 virtual HRESULT STDMETHODCALLTYPE backForwardList(
114 /* [out][retval] */ IWebBackForwardList **list);
116 virtual HRESULT STDMETHODCALLTYPE setMaintainsBackForwardList(
117 /* [in] */ BOOL flag);
119 virtual HRESULT STDMETHODCALLTYPE goBack(
120 /* [retval][out] */ BOOL *succeeded);
122 virtual HRESULT STDMETHODCALLTYPE goForward(
123 /* [retval][out] */ BOOL *succeeded);
125 virtual HRESULT STDMETHODCALLTYPE goToBackForwardItem(
126 /* [in] */ IWebHistoryItem *item,
127 /* [retval][out] */ BOOL *succeeded);
129 virtual HRESULT STDMETHODCALLTYPE setTextSizeMultiplier(
130 /* [in] */ float multiplier);
132 virtual HRESULT STDMETHODCALLTYPE textSizeMultiplier(
133 /* [retval][out] */ float *multiplier);
135 virtual HRESULT STDMETHODCALLTYPE setApplicationNameForUserAgent(
136 /* [in] */ BSTR applicationName);
138 virtual HRESULT STDMETHODCALLTYPE applicationNameForUserAgent(
139 /* [retval][out] */ BSTR *applicationName);
141 virtual HRESULT STDMETHODCALLTYPE setCustomUserAgent(
142 /* [in] */ BSTR userAgentString);
144 virtual HRESULT STDMETHODCALLTYPE customUserAgent(
145 /* [retval][out] */ BSTR *userAgentString);
147 virtual HRESULT STDMETHODCALLTYPE userAgentForURL(
149 /* [retval][out] */ BSTR *userAgent);
151 virtual HRESULT STDMETHODCALLTYPE supportsTextEncoding(
152 /* [retval][out] */ BOOL *supports);
154 virtual HRESULT STDMETHODCALLTYPE setCustomTextEncodingName(
155 /* [in] */ BSTR encodingName);
157 virtual HRESULT STDMETHODCALLTYPE customTextEncodingName(
158 /* [retval][out] */ BSTR *encodingName);
160 virtual HRESULT STDMETHODCALLTYPE setMediaStyle(
161 /* [in] */ BSTR media);
163 virtual HRESULT STDMETHODCALLTYPE mediaStyle(
164 /* [retval][out] */ BSTR *media);
166 virtual HRESULT STDMETHODCALLTYPE stringByEvaluatingJavaScriptFromString(
167 /* [in] */ BSTR script,
168 /* [retval][out] */ BSTR *result);
170 virtual HRESULT STDMETHODCALLTYPE windowScriptObject(
171 /* [retval][out] */ IWebScriptObject *webScriptObject);
173 virtual HRESULT STDMETHODCALLTYPE setPreferences(
174 /* [in] */ IWebPreferences *prefs);
176 virtual HRESULT STDMETHODCALLTYPE preferences(
177 /* [retval][out] */ IWebPreferences **prefs);
179 virtual HRESULT STDMETHODCALLTYPE setPreferencesIdentifier(
180 /* [in] */ BSTR anIdentifier);
182 virtual HRESULT STDMETHODCALLTYPE preferencesIdentifier(
183 /* [retval][out] */ BSTR *anIdentifier);
185 virtual HRESULT STDMETHODCALLTYPE setHostWindow(
186 /* [in] */ HWND window);
188 virtual HRESULT STDMETHODCALLTYPE hostWindow(
189 /* [retval][out] */ HWND *window);
191 virtual HRESULT STDMETHODCALLTYPE searchFor(
193 /* [in] */ BOOL forward,
194 /* [in] */ BOOL caseFlag,
195 /* [in] */ BOOL wrapFlag,
196 /* [retval][out] */ BOOL *found);
198 virtual HRESULT STDMETHODCALLTYPE registerViewClass(
199 /* [in] */ IWebDocumentView *view,
200 /* [in] */ IWebDocumentRepresentation *representation,
201 /* [in] */ BSTR forMIMEType);
205 virtual HRESULT STDMETHODCALLTYPE takeStringURLFrom(
206 /* [in] */ IUnknown *sender);
208 virtual HRESULT STDMETHODCALLTYPE stopLoading(
209 /* [in] */ IUnknown *sender);
211 virtual HRESULT STDMETHODCALLTYPE reload(
212 /* [in] */ IUnknown *sender);
214 virtual HRESULT STDMETHODCALLTYPE canGoBack(
215 /* [in] */ IUnknown *sender,
216 /* [retval][out] */ BOOL *result);
218 virtual HRESULT STDMETHODCALLTYPE goBack(
219 /* [in] */ IUnknown *sender);
221 virtual HRESULT STDMETHODCALLTYPE canGoForward(
222 /* [in] */ IUnknown *sender,
223 /* [retval][out] */ BOOL *result);
225 virtual HRESULT STDMETHODCALLTYPE goForward(
226 /* [in] */ IUnknown *sender);
228 virtual HRESULT STDMETHODCALLTYPE canMakeTextLarger(
229 /* [in] */ IUnknown *sender,
230 /* [retval][out] */ BOOL *result);
232 virtual HRESULT STDMETHODCALLTYPE makeTextLarger(
233 /* [in] */ IUnknown *sender);
235 virtual HRESULT STDMETHODCALLTYPE canMakeTextSmaller(
236 /* [in] */ IUnknown *sender,
237 /* [retval][out] */ BOOL *result);
239 virtual HRESULT STDMETHODCALLTYPE makeTextSmaller(
240 /* [in] */ IUnknown *sender);
244 virtual HRESULT STDMETHODCALLTYPE computedStyleForElement(
245 /* [in] */ IDOMElement *element,
246 /* [in] */ BSTR pseudoElement,
247 /* [retval][out] */ IDOMCSSStyleDeclaration **style);
251 virtual HRESULT STDMETHODCALLTYPE editableDOMRangeForPoint(
252 /* [in] */ LPPOINT point,
253 /* [retval][out] */ IDOMRange **range);
255 virtual HRESULT STDMETHODCALLTYPE setSelectedDOMRange(
256 /* [in] */ IDOMRange *range,
257 /* [in] */ WebSelectionAffinity affinity);
259 virtual HRESULT STDMETHODCALLTYPE selectedDOMRange(
260 /* [retval][out] */ IDOMRange **range);
262 virtual HRESULT STDMETHODCALLTYPE selectionAffinity(
263 /* [retval][out][retval][out] */ WebSelectionAffinity *affinity);
265 virtual HRESULT STDMETHODCALLTYPE setEditable(
266 /* [in] */ BOOL flag);
268 virtual HRESULT STDMETHODCALLTYPE isEditable(
269 /* [retval][out] */ BOOL *isEditable);
271 virtual HRESULT STDMETHODCALLTYPE setTypingStyle(
272 /* [in] */ IDOMCSSStyleDeclaration *style);
274 virtual HRESULT STDMETHODCALLTYPE typingStyle(
275 /* [retval][out] */ IDOMCSSStyleDeclaration **style);
277 virtual HRESULT STDMETHODCALLTYPE setSmartInsertDeleteEnabled(
278 /* [in] */ BOOL flag);
280 virtual HRESULT STDMETHODCALLTYPE smartInsertDeleteEnabled(
281 /* [in] */ BOOL enabled);
283 virtual HRESULT STDMETHODCALLTYPE setContinuousSpellCheckingEnabled(
284 /* [in] */ BOOL flag);
286 virtual HRESULT STDMETHODCALLTYPE isContinuousSpellCheckingEnabled(
287 /* [retval][out] */ BOOL *enabled);
289 virtual HRESULT STDMETHODCALLTYPE spellCheckerDocumentTag(
290 /* [retval][out] */ int *tag);
292 virtual HRESULT STDMETHODCALLTYPE undoManager(
293 /* [retval][out] */ IWebUndoManager *manager);
295 virtual HRESULT STDMETHODCALLTYPE setEditingDelegate(
296 /* [in] */ IWebViewEditingDelegate *d);
298 virtual HRESULT STDMETHODCALLTYPE editingDelegate(
299 /* [retval][out] */ IWebViewEditingDelegate **d);
301 virtual HRESULT STDMETHODCALLTYPE styleDeclarationWithText(
302 /* [in] */ BSTR text,
303 /* [retval][out] */ IDOMCSSStyleDeclaration **style);
305 // IWebViewUndoableEditing
307 virtual HRESULT STDMETHODCALLTYPE replaceSelectionWithNode(
308 /* [in] */ IDOMNode *node);
310 virtual HRESULT STDMETHODCALLTYPE replaceSelectionWithText(
311 /* [in] */ BSTR text);
313 virtual HRESULT STDMETHODCALLTYPE replaceSelectionWithMarkupString(
314 /* [in] */ BSTR markupString);
316 virtual HRESULT STDMETHODCALLTYPE replaceSelectionWithArchive(
317 /* [in] */ IWebArchive *archive);
319 virtual HRESULT STDMETHODCALLTYPE deleteSelection( void);
321 virtual HRESULT STDMETHODCALLTYPE applyStyle(
322 /* [in] */ IDOMCSSStyleDeclaration *style);
324 // IWebViewEditingActions
326 virtual HRESULT STDMETHODCALLTYPE copy(
327 /* [in] */ IUnknown *sender);
329 virtual HRESULT STDMETHODCALLTYPE cut(
330 /* [in] */ IUnknown *sender);
332 virtual HRESULT STDMETHODCALLTYPE paste(
333 /* [in] */ IUnknown *sender);
335 virtual HRESULT STDMETHODCALLTYPE copyFont(
336 /* [in] */ IUnknown *sender);
338 virtual HRESULT STDMETHODCALLTYPE pasteFont(
339 /* [in] */ IUnknown *sender);
341 virtual HRESULT STDMETHODCALLTYPE delete_(
342 /* [in] */ IUnknown *sender);
344 virtual HRESULT STDMETHODCALLTYPE pasteAsPlainText(
345 /* [in] */ IUnknown *sender);
347 virtual HRESULT STDMETHODCALLTYPE pasteAsRichText(
348 /* [in] */ IUnknown *sender);
350 virtual HRESULT STDMETHODCALLTYPE changeFont(
351 /* [in] */ IUnknown *sender);
353 virtual HRESULT STDMETHODCALLTYPE changeAttributes(
354 /* [in] */ IUnknown *sender);
356 virtual HRESULT STDMETHODCALLTYPE changeDocumentBackgroundColor(
357 /* [in] */ IUnknown *sender);
359 virtual HRESULT STDMETHODCALLTYPE changeColor(
360 /* [in] */ IUnknown *sender);
362 virtual HRESULT STDMETHODCALLTYPE alignCenter(
363 /* [in] */ IUnknown *sender);
365 virtual HRESULT STDMETHODCALLTYPE alignJustified(
366 /* [in] */ IUnknown *sender);
368 virtual HRESULT STDMETHODCALLTYPE alignLeft(
369 /* [in] */ IUnknown *sender);
371 virtual HRESULT STDMETHODCALLTYPE alignRight(
372 /* [in] */ IUnknown *sender);
374 virtual HRESULT STDMETHODCALLTYPE checkSpelling(
375 /* [in] */ IUnknown *sender);
377 virtual HRESULT STDMETHODCALLTYPE showGuessPanel(
378 /* [in] */ IUnknown *sender);
380 virtual HRESULT STDMETHODCALLTYPE performFindPanelAction(
381 /* [in] */ IUnknown *sender);
383 virtual HRESULT STDMETHODCALLTYPE startSpeaking(
384 /* [in] */ IUnknown *sender);
386 virtual HRESULT STDMETHODCALLTYPE stopSpeaking(
387 /* [in] */ IUnknown *sender);
391 virtual HRESULT STDMETHODCALLTYPE viewWindow(
392 /* [retval][out] */ HWND *window);
396 void mouseMoved(UINT, WPARAM, LPARAM);
397 void mouseDown(UINT, WPARAM, LPARAM);
398 void mouseUp(UINT, WPARAM, LPARAM);
399 void mouseDoubleClick(UINT, WPARAM, LPARAM);
400 bool keyPress(WPARAM, LPARAM);
401 HRESULT goToItem(IWebHistoryItem* item, WebFrameLoadType withLoadType);
410 WebFrame* m_mainFrame;
411 IWebFrameLoadDelegate* m_frameLoadDelegate;
412 IWebUIDelegate* m_uiDelegate;
413 IWebBackForwardList* m_backForwardList;