KHTML
SVGImageEmptyClients.h
Go to the documentation of this file.
00001 /* 00002 * Copyright (C) 2006 Eric Seidel (eric@webkit.org) 00003 * 00004 * Redistribution and use in source and binary forms, with or without 00005 * modification, are permitted provided that the following conditions 00006 * are met: 00007 * 1. Redistributions of source code must retain the above copyright 00008 * notice, this list of conditions and the following disclaimer. 00009 * 2. Redistributions in binary form must reproduce the above copyright 00010 * notice, this list of conditions and the following disclaimer in the 00011 * documentation and/or other materials provided with the distribution. 00012 * 00013 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY 00014 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 00015 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 00016 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR 00017 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 00018 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 00019 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 00020 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 00021 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 00022 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 00023 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00024 */ 00025 00026 #ifndef SVGImageEmptyClients_h 00027 #define SVGImageEmptyClients_h 00028 00029 #if ENABLE(SVG) 00030 00031 #include "ChromeClient.h" 00032 #include "ContextMenuClient.h" 00033 #include "DragClient.h" 00034 #include "EditorClient.h" 00035 #include "FocusDirection.h" 00036 #include "FrameLoaderClient.h" 00037 #include "InspectorClient.h" 00038 #include "SharedBuffer.h" 00039 00040 /* 00041 This file holds empty Client stubs for use by SVGImage. 00042 SVGImage needs to create a dummy Page->Frame->FrameView tree for use in parsing an SVGDocument. 00043 This tree depends heavily on Clients (usually provided by WebKit classes). 00044 00045 SVGImage has no way to access the current Page (nor should it, since Images are not tied to a page). 00046 See http://bugs.webkit.org/show_bug.cgi?id=5971 for more discussion on this issue. 00047 00048 Ideally, whenever you change a Client class, you should add a stub here. 00049 Brittle, yes. Unfortunate, yes. Hopefully temporary. 00050 */ 00051 00052 namespace WebCore { 00053 00054 class SVGEmptyChromeClient : public ChromeClient { 00055 public: 00056 virtual ~SVGEmptyChromeClient() { } 00057 virtual void chromeDestroyed() { } 00058 00059 virtual void setWindowRect(const FloatRect&) { } 00060 virtual FloatRect windowRect() { return FloatRect(); } 00061 00062 virtual FloatRect pageRect() { return FloatRect(); } 00063 00064 virtual float scaleFactor() { return 1.f; } 00065 00066 virtual void focus() { } 00067 virtual void unfocus() { } 00068 00069 virtual bool canTakeFocus(FocusDirection) { return false; } 00070 virtual void takeFocus(FocusDirection) { } 00071 00072 virtual Page* createWindow(Frame*, const FrameLoadRequest&, const WindowFeatures&) { return 0; } 00073 virtual void show() { } 00074 00075 virtual bool canRunModal() { return false; } 00076 virtual void runModal() { } 00077 00078 virtual void setToolbarsVisible(bool) { } 00079 virtual bool toolbarsVisible() { return false; } 00080 00081 virtual void setStatusbarVisible(bool) { } 00082 virtual bool statusbarVisible() { return false; } 00083 00084 virtual void setScrollbarsVisible(bool) { } 00085 virtual bool scrollbarsVisible() { return false; } 00086 00087 virtual void setMenubarVisible(bool) { } 00088 virtual bool menubarVisible() { return false; } 00089 00090 virtual void setResizable(bool) { } 00091 00092 virtual void addMessageToConsole(const String& message, unsigned int lineNumber, const String& sourceID) { } 00093 00094 virtual bool canRunBeforeUnloadConfirmPanel() { return false; } 00095 virtual bool runBeforeUnloadConfirmPanel(const String& message, Frame* frame) { return true; } 00096 00097 virtual void closeWindowSoon() { } 00098 00099 virtual void runJavaScriptAlert(Frame*, const String&) { } 00100 virtual bool runJavaScriptConfirm(Frame*, const String&) { return false; } 00101 virtual bool runJavaScriptPrompt(Frame*, const String& message, const String& defaultValue, String& result) { return false; } 00102 virtual bool shouldInterruptJavaScript() { return false; } 00103 00104 virtual void setStatusbarText(const String&) { } 00105 00106 virtual bool tabsToLinks() const { return false; } 00107 00108 virtual IntRect windowResizerRect() const { return IntRect(); } 00109 virtual void addToDirtyRegion(const IntRect&) { } 00110 virtual void scrollBackingStore(int dx, int dy, const IntRect& scrollViewRect, const IntRect& clipRect) { } 00111 virtual void updateBackingStore() { } 00112 00113 virtual void mouseDidMoveOverElement(const HitTestResult&, unsigned modifierFlags) { } 00114 00115 virtual void setToolTip(const String&) { } 00116 00117 virtual void print(Frame*) { } 00118 00119 virtual void exceededDatabaseQuota(Frame*, const String&) { } 00120 }; 00121 00122 class SVGEmptyFrameLoaderClient : public FrameLoaderClient { 00123 public: 00124 virtual ~SVGEmptyFrameLoaderClient() { } 00125 virtual void frameLoaderDestroyed() { } 00126 00127 virtual bool hasWebView() const { return true; } // mainly for assertions 00128 virtual bool hasFrameView() const { return true; } // ditto 00129 00130 virtual void makeRepresentation(DocumentLoader*) { } 00131 virtual void forceLayout() { } 00132 virtual void forceLayoutForNonHTML() { } 00133 00134 virtual void updateHistoryForCommit() { } 00135 00136 virtual void updateHistoryForBackForwardNavigation() { } 00137 virtual void updateHistoryForReload() { } 00138 virtual void updateHistoryForStandardLoad() { } 00139 virtual void updateHistoryForInternalLoad() { } 00140 00141 virtual void updateHistoryAfterClientRedirect() { } 00142 00143 virtual void setCopiesOnScroll() { } 00144 00145 virtual void detachedFromParent2() { } 00146 virtual void detachedFromParent3() { } 00147 virtual void detachedFromParent4() { } 00148 00149 virtual void download(ResourceHandle*, const ResourceRequest&, const ResourceRequest&, const ResourceResponse&) { } 00150 00151 virtual void assignIdentifierToInitialRequest(unsigned long identifier, DocumentLoader*, const ResourceRequest&) { } 00152 virtual void dispatchWillSendRequest(DocumentLoader*, unsigned long identifier, ResourceRequest&, const ResourceResponse& redirectResponse) { } 00153 virtual void dispatchDidReceiveAuthenticationChallenge(DocumentLoader*, unsigned long identifier, const AuthenticationChallenge&) { } 00154 virtual void dispatchDidCancelAuthenticationChallenge(DocumentLoader*, unsigned long identifier, const AuthenticationChallenge&) { } 00155 virtual void dispatchDidReceiveResponse(DocumentLoader*, unsigned long identifier, const ResourceResponse&) { } 00156 virtual void dispatchDidReceiveContentLength(DocumentLoader*, unsigned long identifier, int lengthReceived) { } 00157 virtual void dispatchDidFinishLoading(DocumentLoader*, unsigned long identifier) { } 00158 virtual void dispatchDidFailLoading(DocumentLoader*, unsigned long identifier, const ResourceError&) { } 00159 virtual bool dispatchDidLoadResourceFromMemoryCache(DocumentLoader*, const ResourceRequest&, const ResourceResponse&, int length) { return false; } 00160 00161 virtual void dispatchDidHandleOnloadEvents() { } 00162 virtual void dispatchDidReceiveServerRedirectForProvisionalLoad() { } 00163 virtual void dispatchDidCancelClientRedirect() { } 00164 virtual void dispatchWillPerformClientRedirect(const KURL&, double interval, double fireDate) { } 00165 virtual void dispatchDidChangeLocationWithinPage() { } 00166 virtual void dispatchWillClose() { } 00167 virtual void dispatchDidReceiveIcon() { } 00168 virtual void dispatchDidStartProvisionalLoad() { } 00169 virtual void dispatchDidReceiveTitle(const String& title) { } 00170 virtual void dispatchDidCommitLoad() { } 00171 virtual void dispatchDidFailProvisionalLoad(const ResourceError&) { } 00172 virtual void dispatchDidFailLoad(const ResourceError&) { } 00173 virtual void dispatchDidFinishDocumentLoad() { } 00174 virtual void dispatchDidFinishLoad() { } 00175 virtual void dispatchDidFirstLayout() { } 00176 00177 virtual Frame* dispatchCreatePage() { return 0; } 00178 virtual void dispatchShow() { } 00179 00180 virtual void dispatchDecidePolicyForMIMEType(FramePolicyFunction, const String& MIMEType, const ResourceRequest&) { } 00181 virtual void dispatchDecidePolicyForNewWindowAction(FramePolicyFunction, const NavigationAction&, const ResourceRequest&, const String& frameName) { } 00182 virtual void dispatchDecidePolicyForNavigationAction(FramePolicyFunction, const NavigationAction&, const ResourceRequest&) { } 00183 virtual void cancelPolicyCheck() { } 00184 00185 virtual void dispatchUnableToImplementPolicy(const ResourceError&) { } 00186 00187 virtual void dispatchWillSubmitForm(FramePolicyFunction, PassRefPtr<FormState>) { } 00188 00189 virtual void dispatchDidLoadMainResource(DocumentLoader*) { } 00190 virtual void revertToProvisionalState(DocumentLoader*) { } 00191 virtual void setMainDocumentError(DocumentLoader*, const ResourceError&) { } 00192 00193 virtual void willChangeEstimatedProgress() { } 00194 virtual void didChangeEstimatedProgress() { } 00195 virtual void postProgressStartedNotification() { } 00196 virtual void postProgressEstimateChangedNotification() { } 00197 virtual void postProgressFinishedNotification() { } 00198 00199 virtual void setMainFrameDocumentReady(bool) { } 00200 00201 virtual void startDownload(const ResourceRequest&) { } 00202 00203 virtual void willChangeTitle(DocumentLoader*) { } 00204 virtual void didChangeTitle(DocumentLoader*) { } 00205 00206 virtual void committedLoad(DocumentLoader*, const char*, int) { } 00207 virtual void finishedLoading(DocumentLoader*) { } 00208 00209 virtual ResourceError cancelledError(const ResourceRequest&) { return ResourceError(); } 00210 virtual ResourceError blockedError(const ResourceRequest&) { return ResourceError(); } 00211 virtual ResourceError cannotShowURLError(const ResourceRequest&) { return ResourceError(); } 00212 virtual ResourceError interruptForPolicyChangeError(const ResourceRequest&) { return ResourceError(); } 00213 00214 virtual ResourceError cannotShowMIMETypeError(const ResourceResponse&) { return ResourceError(); } 00215 virtual ResourceError fileDoesNotExistError(const ResourceResponse&) { return ResourceError(); } 00216 00217 virtual bool shouldFallBack(const ResourceError&) { return false; } 00218 00219 virtual bool canHandleRequest(const ResourceRequest&) const { return false; } 00220 virtual bool canShowMIMEType(const String& MIMEType) const { return false; } 00221 virtual bool representationExistsForURLScheme(const String& URLScheme) const { return false; } 00222 virtual String generatedMIMETypeForURLScheme(const String& URLScheme) const { return ""; } 00223 00224 virtual void frameLoadCompleted() { } 00225 virtual void restoreViewState() { } 00226 virtual void provisionalLoadStarted() { } 00227 virtual bool shouldTreatURLAsSameAsCurrent(const KURL&) const { return false; } 00228 virtual void addHistoryItemForFragmentScroll() { } 00229 virtual void didFinishLoad() { } 00230 virtual void prepareForDataSourceReplacement() { } 00231 00232 virtual PassRefPtr<DocumentLoader> createDocumentLoader(const ResourceRequest& request, const SubstituteData& substituteData) { return new DocumentLoader(request, substituteData); } 00233 virtual void setTitle(const String& title, const KURL&) { } 00234 00235 virtual String userAgent(const KURL&) { return ""; } 00236 00237 virtual void savePlatformDataToCachedPage(CachedPage*) { } 00238 virtual void transitionToCommittedFromCachedPage(CachedPage*) { } 00239 virtual void transitionToCommittedForNewPage() { } 00240 00241 virtual void updateGlobalHistory(const KURL&) { } 00242 virtual bool shouldGoToHistoryItem(HistoryItem*) const { return false; } 00243 virtual void saveViewStateToItem(HistoryItem*) { } 00244 virtual bool canCachePage() const { return false; } 00245 00246 virtual PassRefPtr<Frame> createFrame(const KURL& url, const String& name, HTMLFrameOwnerElement* ownerElement, 00247 const String& referrer, bool allowsScrolling, int marginWidth, int marginHeight) { return 0; } 00248 virtual Widget* createPlugin(const IntSize&,Element*, const KURL&, const Vector<String>&, const Vector<String>&, const String&, bool) { return 0; } 00249 virtual Widget* createJavaAppletWidget(const IntSize&, Element*, const KURL&, const Vector<String>&, const Vector<String>&) { return 0; } 00250 00251 virtual ObjectContentType objectContentType(const KURL& url, const String& mimeType) { return ObjectContentType(); } 00252 virtual String overrideMediaType() const { return String(); } 00253 00254 virtual void redirectDataToPlugin(Widget*) {} 00255 virtual void windowObjectCleared() {} 00256 virtual void didPerformFirstNavigation() const {} 00257 00258 virtual void registerForIconNotification(bool listen) {} 00259 00260 #if PLATFORM(MAC) 00261 virtual NSCachedURLResponse* willCacheResponse(DocumentLoader*, unsigned long identifier, NSCachedURLResponse* response) const { return response; } 00262 #endif 00263 00264 }; 00265 00266 class SVGEmptyEditorClient : public EditorClient { 00267 public: 00268 virtual ~SVGEmptyEditorClient() { } 00269 virtual void pageDestroyed() { } 00270 00271 virtual bool shouldDeleteRange(Range*) { return false; } 00272 virtual bool shouldShowDeleteInterface(HTMLElement*) { return false; } 00273 virtual bool smartInsertDeleteEnabled() { return false; } 00274 virtual bool isContinuousSpellCheckingEnabled() { return false; } 00275 virtual void toggleContinuousSpellChecking() { } 00276 virtual bool isGrammarCheckingEnabled() { return false; } 00277 virtual void toggleGrammarChecking() { } 00278 virtual int spellCheckerDocumentTag() { return -1; } 00279 00280 virtual bool selectWordBeforeMenuEvent() { return false; } 00281 virtual bool isEditable() { return false; } 00282 00283 virtual bool shouldBeginEditing(Range*) { return false; } 00284 virtual bool shouldEndEditing(Range*) { return false; } 00285 virtual bool shouldInsertNode(Node*, Range*, EditorInsertAction) { return false; } 00286 // virtual bool shouldInsertNode(Node*, Range* replacingRange, WebViewInsertAction) { return false; } 00287 virtual bool shouldInsertText(const String&, Range*, EditorInsertAction) { return false; } 00288 virtual bool shouldChangeSelectedRange(Range* fromRange, Range* toRange, EAffinity, bool stillSelecting) { return false; } 00289 00290 virtual bool shouldApplyStyle(CSSStyleDeclaration*, Range*) { return false; } 00291 virtual bool shouldMoveRangeAfterDelete(Range*, Range*) { return false; } 00292 // virtual bool shouldChangeTypingStyle(CSSStyleDeclaration* fromStyle, CSSStyleDeclaration* toStyle) { return false; } 00293 // virtual bool doCommandBySelector(SEL selector) { return false; } 00294 // 00295 virtual void didBeginEditing() { } 00296 virtual void respondToChangedContents() { } 00297 virtual void respondToChangedSelection() { } 00298 virtual void didEndEditing() { } 00299 virtual void didWriteSelectionToPasteboard() { } 00300 virtual void didSetSelectionTypesForPasteboard() { } 00301 // virtual void webViewDidChangeTypingStyle:(NSNotification *)notification { } 00302 // virtual void webViewDidChangeSelection:(NSNotification *)notification { } 00303 // virtual NSUndoManager* undoManagerForWebView:(WebView *)webView { return 0; } 00304 00305 virtual void registerCommandForUndo(PassRefPtr<EditCommand>) { } 00306 virtual void registerCommandForRedo(PassRefPtr<EditCommand>) { } 00307 virtual void clearUndoRedoOperations() { } 00308 00309 virtual bool canUndo() const { return false; } 00310 virtual bool canRedo() const { return false; } 00311 00312 virtual void undo() { } 00313 virtual void redo() { } 00314 00315 virtual void handleKeyboardEvent(KeyboardEvent*) { } 00316 virtual void handleInputMethodKeydown(KeyboardEvent*) { } 00317 00318 virtual void textFieldDidBeginEditing(Element*) { } 00319 virtual void textFieldDidEndEditing(Element*) { } 00320 virtual void textDidChangeInTextField(Element*) { } 00321 virtual bool doTextFieldCommandFromEvent(Element*, KeyboardEvent*) { return false; } 00322 virtual void textWillBeDeletedInTextField(Element*) { } 00323 virtual void textDidChangeInTextArea(Element*) { } 00324 00325 #if PLATFORM(MAC) 00326 virtual void markedTextAbandoned(Frame*) { } 00327 00328 virtual NSString* userVisibleString(NSURL*) { return 0; } 00329 #ifdef BUILDING_ON_TIGER 00330 virtual NSArray* pasteboardTypesForSelection(Frame*) { return 0; } 00331 #endif 00332 #endif 00333 virtual void ignoreWordInSpellDocument(const String&) { } 00334 virtual void learnWord(const String&) { } 00335 virtual void checkSpellingOfString(const UChar*, int length, int* misspellingLocation, int* misspellingLength) { } 00336 virtual void checkGrammarOfString(const UChar*, int length, Vector<GrammarDetail>&, int* badGrammarLocation, int* badGrammarLength) { } 00337 virtual void updateSpellingUIWithGrammarString(const String&, const GrammarDetail&) { } 00338 virtual void updateSpellingUIWithMisspelledWord(const String&) { } 00339 virtual void showSpellingUI(bool show) { } 00340 virtual bool spellingUIIsShowing() { return false; } 00341 virtual void getGuessesForWord(const String&, Vector<String>& guesses) { } 00342 virtual void setInputMethodState(bool enabled) { } 00343 00344 00345 }; 00346 00347 class SVGEmptyContextMenuClient : public ContextMenuClient { 00348 public: 00349 virtual ~SVGEmptyContextMenuClient() { } 00350 virtual void contextMenuDestroyed() { } 00351 00352 virtual PlatformMenuDescription getCustomMenuFromDefaultItems(ContextMenu*) { return 0; } 00353 virtual void contextMenuItemSelected(ContextMenuItem*, const ContextMenu*) { } 00354 00355 virtual void downloadURL(const KURL& url) { } 00356 virtual void copyImageToClipboard(const HitTestResult&) { } 00357 virtual void searchWithGoogle(const Frame*) { } 00358 virtual void lookUpInDictionary(Frame*) { } 00359 virtual void speak(const String&) { } 00360 virtual void stopSpeaking() { } 00361 00362 #if PLATFORM(MAC) 00363 virtual void searchWithSpotlight() { } 00364 #endif 00365 }; 00366 00367 class SVGEmptyDragClient : public DragClient { 00368 public: 00369 virtual ~SVGEmptyDragClient() {} 00370 virtual void willPerformDragDestinationAction(DragDestinationAction, DragData*) { } 00371 virtual void willPerformDragSourceAction(DragSourceAction, const IntPoint&, Clipboard*) { } 00372 virtual DragDestinationAction actionMaskForDrag(DragData*) { return DragDestinationActionNone; } 00373 virtual DragSourceAction dragSourceActionMaskForPoint(const IntPoint&) { return DragSourceActionNone; } 00374 virtual void startDrag(DragImageRef, const IntPoint&, const IntPoint&, Clipboard*, Frame*, bool) { } 00375 virtual DragImageRef createDragImageForLink(KURL&, const String& label, Frame*) { return 0; } 00376 virtual void dragControllerDestroyed() { } 00377 }; 00378 00379 class SVGEmptyInspectorClient : public InspectorClient { 00380 public: 00381 virtual ~SVGEmptyInspectorClient() {} 00382 00383 virtual void inspectorDestroyed() {}; 00384 00385 virtual Page* createPage() { return 0; }; 00386 00387 virtual String localizedStringsURL() { return String(); }; 00388 00389 virtual void showWindow() {}; 00390 virtual void closeWindow() {}; 00391 00392 virtual void attachWindow() {}; 00393 virtual void detachWindow() {}; 00394 00395 virtual void highlight(Node*) {}; 00396 virtual void hideHighlight() {}; 00397 virtual void inspectedURLChanged(const String& newURL) {}; 00398 }; 00399 00400 } 00401 00402 #endif // ENABLE(SVG) 00403 00404 #endif // SVGImageEmptyClients_h 00405
KDE 4.6 API Reference