Rename Source/WebKit to Source/WebKitLegacy.
[WebKit-https.git] / Source / WebKitLegacy / ios / WebView / WebUIKitDelegate.h
1 /*
2  * Copyright (C) 2006 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  * 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.
12  *
13  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23  * THE POSSIBILITY OF SUCH DAMAGE.
24  */
25
26 #ifndef WebUIKitDelegate_h
27 #define WebUIKitDelegate_h
28
29 #import <WebKitLegacy/WAKAppKitStubs.h>
30 #import <WebKitLegacy/WKContentObservation.h>
31
32 @class DOMDocumentFragment;
33 @class DOMNode;
34 @class DOMRange;
35 @class WAKView;
36 @class WebDataSource;
37 @class WebFrame;
38 @class WebHistoryItem;
39 @class WebView;
40 @class WebPluginPackage;
41 @class WebSecurityOrigin;
42 @class UIWebPlugInView;
43
44 extern NSString * const WebOpenPanelConfigurationAllowMultipleFilesKey;
45 extern NSString * const WebOpenPanelConfigurationMimeTypesKey;
46 extern NSString * const WebOpenPanelConfigurationMediaCaptureTypeKey;
47
48 typedef NS_ENUM(NSInteger, WebMediaCaptureType) {
49     WebMediaCaptureTypeNone,
50     WebMediaCaptureTypeUser,
51     WebMediaCaptureTypeEnvironment
52 };
53
54 @protocol WebOpenPanelResultListener;
55
56 @interface NSObject (WebUIKitDelegate)
57 - (void)webView:(WebView *)webView didCommitLoadForFrame:(WebFrame *)frame;
58 - (void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame;
59 - (void)webView:(WebView *)sender didFailLoadWithError:(NSError *)error forFrame:(WebFrame *)frame;
60 - (void)webView:(WebView *)sender didChangeLocationWithinPageForFrame:(WebFrame *)frame;
61 - (void)webViewDidReceiveMobileDocType:(WebView *)webView;
62 - (void)webView:(WebView *)aWebView didReceiveViewportArguments:(NSDictionary *)arguments;
63 - (void)webView:(WebView *)aWebView needsScrollNotifications:(NSNumber *)aNumber forFrame:(WebFrame *)aFrame;
64 - (void)webView:(WebView *)webView saveStateToHistoryItem:(WebHistoryItem *)item forFrame:(WebFrame *)frame;
65 - (void)webView:(WebView *)webView restoreStateFromHistoryItem:(WebHistoryItem *)item forFrame:(WebFrame *)frame force:(BOOL)force;
66 - (BOOL)webView:(WebView *)webView shouldScrollToPoint:(CGPoint)point forFrame:(WebFrame *)frame;
67 - (void)webView:(WebView *)webView didObserveDeferredContentChange:(WKContentChange)aChange forFrame:(WebFrame *)frame;
68 - (void)webViewDidPreventDefaultForEvent:(WebView *)webView;
69 - (void)webThreadWebViewDidLayout:(WebView *)webView byScrolling:(BOOL)byScrolling;
70 - (void)webViewDidStartOverflowScroll:(WebView *)webView;
71 - (void)webViewDidEndOverflowScroll:(WebView *)webView;
72
73 // File Upload support
74 - (void)webView:(WebView *)webView runOpenPanelForFileButtonWithResultListener:(id<WebOpenPanelResultListener>)resultListener configuration:(NSDictionary *)configuration;
75
76 // AutoFill support
77 - (void)webView:(WebView *)webView willCloseFrame:(WebFrame *)frame;
78 - (void)webView:(WebView *)webView didFirstLayoutInFrame:(WebFrame *)frame;
79 - (void)webView:(WebView *)webView didFirstVisuallyNonEmptyLayoutInFrame:(WebFrame *)frame;
80
81 // Focus support
82 - (void)webView:(WebView *)webView elementDidFocusNode:(DOMNode *)node;
83 - (void)webView:(WebView *)webView elementDidBlurNode:(DOMNode *)node;
84
85 // PageCache support
86 - (void)webViewDidRestoreFromPageCache:(WebView *)webView;
87
88 - (NSView *)webView:(WebView *)webView plugInViewWithArguments:(NSDictionary *)arguments fromPlugInPackage:(WebPluginPackage *)package;
89 - (void)webView:(WebView *)webView willShowFullScreenForPlugInView:(id)plugInView;
90 - (void)webView:(WebView *)webView didHideFullScreenForPlugInView:(id)plugInView;
91 - (void)webView:(WebView *)aWebView didReceiveMessage:(NSDictionary *)aMessage;
92 - (void)addInputString:(NSString *)str withFlags:(NSUInteger)flags;
93 // FIXME: remove deleteFromInput when UIKit implements deleteFromInputWithFlags.
94 - (void)deleteFromInput;
95 - (void)deleteFromInputWithFlags:(NSUInteger)flags;
96
97 // Accelerated compositing
98 - (void)_webthread_webView:(WebView*)webView attachRootLayer:(id)rootLayer;
99 - (void)webViewDidCommitCompositingLayerChanges:(WebView*)webView;
100
101 - (void)webView:(WebView*)webView didCreateOrUpdateScrollingLayer:(id)layer withContentsLayer:(id)contentsLayer scrollSize:(NSValue*)sizeValue forNode:(DOMNode *)node
102     allowHorizontalScrollbar:(BOOL)allowHorizontalScrollbar allowVerticalScrollbar:(BOOL)allowVerticalScrollbar;
103 - (void)webView:(WebView*)webView willRemoveScrollingLayer:(id)layer withContentsLayer:(id)contentsLayer forNode:(DOMNode *)node;
104
105 - (void)revealedSelectionByScrollingWebFrame:(WebFrame *)webFrame;
106
107 // Spellcheck support.
108 // Returns an array of NSValues containing NSRanges which indicate the misspellings.
109 - (NSArray *)checkSpellingOfString:(NSString *)stringToCheck;
110
111 - (void)webView:(WebView *)webView willAddPlugInView:(id)plugInView;
112
113 - (void)webViewDidDrawTiles:(WebView *)sender;
114
115 // Pasteboard support delegates
116 - (void)writeDataToPasteboard:(NSDictionary*)representations;
117 - (NSArray*)readDataFromPasteboard:(NSString*)type withIndex:(NSInteger)index;
118 - (NSInteger)getPasteboardItemsCount;
119 - (NSArray*)supportedPasteboardTypesForCurrentSelection;
120 - (BOOL)hasRichlyEditableSelection;
121 - (BOOL)performsTwoStepPaste:(DOMDocumentFragment*)fragment;
122 - (BOOL)performTwoStepDrop:(DOMDocumentFragment *)fragment atDestination:(DOMRange *)destination isMove:(BOOL)isMove;
123 - (NSInteger)getPasteboardChangeCount;
124 - (CGPoint)interactionLocation;
125 - (void)showPlaybackTargetPicker:(BOOL)hasVideo fromRect:(CGRect)elementRect;
126
127 #if ENABLE_ORIENTATION_EVENTS
128 - (int)deviceOrientation;
129 #endif
130
131 - (BOOL)isUnperturbedDictationResultMarker:(id)metadataForMarker;
132 - (void)webView:(WebView *)webView addMessageToConsole:(NSDictionary *)message withSource:(NSString *)source;
133 @end
134
135 #endif // WebUIKitDelegate_h