1 /* 2 * Copyright (C) 2005, 2006, 2007, 2008, 2009 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 // This header contains WebView declarations that can be used anywhere in WebKit, but are neither SPI nor API. 30 31 #import "WebPreferences.h" 32 #import "WebViewPrivate.h" 33 #import "WebTypesInternal.h" 34 35 #ifdef __cplusplus 36 #import <WebCore/WebCoreKeyboardUIMode.h> 37 38 namespace WebCore { 39 class String; 40 class Frame; 41 class KURL; 42 class KeyboardEvent; 43 class Page; 44 class Node; 45 } 46 #endif 47 48 @class WebBasePluginPackage; 49 @class WebDownload; 50 @class WebNodeHighlight; 51 52 #ifdef __cplusplus 53 54 @interface WebView (WebViewEditingExtras) 55 - (BOOL)_interceptEditingKeyEvent:(WebCore::KeyboardEvent*)event shouldSaveCommand:(BOOL)shouldSave; 56 - (BOOL)_shouldChangeSelectedDOMRange:(DOMRange *)currentRange toDOMRange:(DOMRange *)proposedRange affinity:(NSSelectionAffinity)selectionAffinity stillSelecting:(BOOL)flag; 57 @end 58 59 @interface WebView (AllWebViews) 60 + (void)_makeAllWebViewsPerformSelector:(SEL)selector; 61 - (void)_removeFromAllWebViewsSet; 62 - (void)_addToAllWebViewsSet; 63 @end 64 65 @interface WebView (WebViewInternal) 66 67 - (WebCore::Frame*)_mainCoreFrame; 68 - (WebFrame *)_selectedOrMainFrame; 69 70 - (WebCore::KeyboardUIMode)_keyboardUIMode; 71 72 - (BOOL)_becomingFirstResponderFromOutside; 73 74 #if ENABLE(ICONDATABASE) 75 - (void)_registerForIconNotification:(BOOL)listen; 76 - (void)_dispatchDidReceiveIconFromWebFrame:(WebFrame *)webFrame; 77 #endif 78 79 - (void)_selectionChanged; 80 81 #if USE(ACCELERATED_COMPOSITING) 82 - (BOOL)_needsOneShotDrawingSynchronization; 83 - (void)_setNeedsOneShotDrawingSynchronization:(BOOL)needsSynchronization; 84 - (void)_scheduleCompositingLayerSync; 85 #endif 86 87 @end 88 89 #endif 90 91 @interface WebView (WebViewEventHandling) 92 - (void)_closingEventHandling; 93 - (void)_updateMouseoverWithFakeEvent; 94 - (void)_cancelUpdateMouseoverTimer; 95 - (void)_stopAutoscrollTimer; 96 - (void)_setToolTip:(NSString *)toolTip; 97 @end 98 99 // FIXME: Temporary way to expose methods that are in the wrong category inside WebView. 100 @interface WebView (WebViewOtherInternal) 101 102 + (void)_setCacheModel:(WebCacheModel)cacheModel; 103 + (WebCacheModel)_cacheModel; 104 105 #ifdef __cplusplus 106 - (WebCore::Page*)page; 107 #endif 108 109 - (NSMenu *)_menuForElement:(NSDictionary *)element defaultItems:(NSArray *)items; 110 - (id)_UIDelegateForwarder; 111 - (id)_editingDelegateForwarder; 112 - (id)_policyDelegateForwarder; 113 - (void)_pushPerformingProgrammaticFocus; 114 - (void)_popPerformingProgrammaticFocus; 115 - (void)_didStartProvisionalLoadForFrame:(WebFrame *)frame; 116 + (BOOL)_viewClass:(Class *)vClass andRepresentationClass:(Class *)rClass forMIMEType:(NSString *)MIMEType allowingPlugins:(BOOL)allowPlugins; 117 - (BOOL)_viewClass:(Class *)vClass andRepresentationClass:(Class *)rClass forMIMEType:(NSString *)MIMEType; 118 + (BOOL)_canShowMIMEType:(NSString *)MIMEType allowingPlugins:(BOOL)allowPlugins; 119 - (BOOL)_canShowMIMEType:(NSString *)MIMEType; 120 + (NSString *)_MIMETypeForFile:(NSString *)path; 121 - (WebDownload *)_downloadURL:(NSURL *)URL; 122 + (NSString *)_generatedMIMETypeForURLScheme:(NSString *)URLScheme; 123 + (BOOL)_representationExistsForURLScheme:(NSString *)URLScheme; 124 - (BOOL)_isPerformingProgrammaticFocus; 125 - (void)_mouseDidMoveOverElement:(NSDictionary *)dictionary modifierFlags:(NSUInteger)modifierFlags; 126 - (WebView *)_openNewWindowWithRequest:(NSURLRequest *)request; 127 - (void)_writeImageForElement:(NSDictionary *)element withPasteboardTypes:(NSArray *)types toPasteboard:(NSPasteboard *)pasteboard; 128 - (void)_writeLinkElement:(NSDictionary *)element withPasteboardTypes:(NSArray *)types toPasteboard:(NSPasteboard *)pasteboard; 129 - (void)_openFrameInNewWindowFromMenu:(NSMenuItem *)sender; 130 - (void)_searchWithGoogleFromMenu:(id)sender; 131 - (void)_searchWithSpotlightFromMenu:(id)sender; 132 - (void)_progressCompleted:(WebFrame *)frame; 133 - (void)_didCommitLoadForFrame:(WebFrame *)frame; 134 - (void)_didFinishLoadForFrame:(WebFrame *)frame; 135 - (void)_didFailLoadWithError:(NSError *)error forFrame:(WebFrame *)frame; 136 - (void)_didFailProvisionalLoadWithError:(NSError *)error forFrame:(WebFrame *)frame; 137 - (void)_willChangeValueForKey:(NSString *)key; 138 - (void)_didChangeValueForKey:(NSString *)key; 139 - (WebBasePluginPackage *)_pluginForMIMEType:(NSString *)MIMEType; 140 - (WebBasePluginPackage *)_pluginForExtension:(NSString *)extension; 141 142 - (void)setCurrentNodeHighlight:(WebNodeHighlight *)nodeHighlight; 143 - (WebNodeHighlight *)currentNodeHighlight; 144 145 - (void)addPluginInstanceView:(NSView *)view; 146 - (void)removePluginInstanceView:(NSView *)view; 147 - (void)removePluginInstanceViewsFor:(WebFrame*)webFrame; 148 149 - (void)_addObject:(id)object forIdentifier:(unsigned long)identifier; 150 - (id)_objectForIdentifier:(unsigned long)identifier; 151 - (void)_removeObjectForIdentifier:(unsigned long)identifier; 152 153 - (void)_setZoomMultiplier:(float)multiplier isTextOnly:(BOOL)isTextOnly; 154 - (float)_zoomMultiplier:(BOOL)isTextOnly; 155 - (float)_realZoomMultiplier; 156 - (BOOL)_realZoomMultiplierIsTextOnly; 157 - (BOOL)_canZoomOut:(BOOL)isTextOnly; 158 - (BOOL)_canZoomIn:(BOOL)isTextOnly; 159 - (IBAction)_zoomOut:(id)sender isTextOnly:(BOOL)isTextOnly; 160 - (IBAction)_zoomIn:(id)sender isTextOnly:(BOOL)isTextOnly; 161 - (BOOL)_canResetZoom:(BOOL)isTextOnly; 162 - (IBAction)_resetZoom:(id)sender isTextOnly:(BOOL)isTextOnly; 163 164 - (BOOL)_mustDrawUnionedRect:(NSRect)rect singleRects:(const NSRect *)rects count:(NSInteger)count; 165 166 + (BOOL)_canHandleRequest:(NSURLRequest *)request forMainFrame:(BOOL)forMainFrame; 167 168 - (void)_setInsertionPasteboard:(NSPasteboard *)pasteboard; 169 170 #if ENABLE(VIDEO) && defined(__cplusplus) 171 - (void)_enterFullscreenForNode:(WebCore::Node*)node; 172 - (void)_exitFullscreen; 173 #endif 174 175 @end 176