WebKit/mac/WebView/WebUIDelegatePrivate.h
changeset 0 4f2f89ce4247
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebKit/mac/WebView/WebUIDelegatePrivate.h	Fri Sep 17 09:02:29 2010 +0300
@@ -0,0 +1,157 @@
+/*
+ * Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer. 
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution. 
+ * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ *     its contributors may be used to endorse or promote products derived
+ *     from this software without specific prior written permission. 
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import <WebKit/WebUIDelegate.h>
+
+#if !defined(ENABLE_DASHBOARD_SUPPORT)
+#define ENABLE_DASHBOARD_SUPPORT 1
+#endif
+
+// Mail on Tiger expects the old value for WebMenuItemTagSearchInGoogle
+#define WebMenuItemTagSearchInGoogle OldWebMenuItemTagSearchWeb
+
+#define WEBMENUITEMTAG_WEBKIT_3_0_SPI_START 2000
+enum { 
+    // The next three values were used in WebKit 2.0 for SPI. In WebKit 3.0 these are API, with different values.
+    OldWebMenuItemTagSearchInSpotlight = 1000,
+    OldWebMenuItemTagSearchWeb,
+    OldWebMenuItemTagLookUpInDictionary,
+    // FIXME: These should move to WebUIDelegate.h as part of the WebMenuItemTag enum there, when we're not in API freeze 
+    // Note that these values must be kept aligned with values in WebCore/ContextMenuItem.h
+    WebMenuItemTagOpenLink = WEBMENUITEMTAG_WEBKIT_3_0_SPI_START,
+    WebMenuItemTagIgnoreGrammar,
+    WebMenuItemTagSpellingMenu,
+    WebMenuItemTagShowSpellingPanel,
+    WebMenuItemTagCheckSpelling,
+    WebMenuItemTagCheckSpellingWhileTyping,
+    WebMenuItemTagCheckGrammarWithSpelling,
+    WebMenuItemTagFontMenu,
+    WebMenuItemTagShowFonts,
+    WebMenuItemTagBold,
+    WebMenuItemTagItalic,
+    WebMenuItemTagUnderline,
+    WebMenuItemTagOutline,
+    WebMenuItemTagStyles,
+    WebMenuItemTagShowColors,
+    WebMenuItemTagSpeechMenu,
+    WebMenuItemTagStartSpeaking,
+    WebMenuItemTagStopSpeaking,
+    WebMenuItemTagWritingDirectionMenu,
+    WebMenuItemTagDefaultDirection,
+    WebMenuItemTagLeftToRight,
+    WebMenuItemTagRightToLeft,
+    WebMenuItemPDFSinglePageScrolling,
+    WebMenuItemPDFFacingPagesScrolling,
+    WebMenuItemTagInspectElement,
+    WebMenuItemTagTextDirectionMenu,
+    WebMenuItemTagTextDirectionDefault,
+    WebMenuItemTagTextDirectionLeftToRight,
+    WebMenuItemTagTextDirectionRightToLeft,
+    WebMenuItemTagCorrectSpellingAutomatically,
+    WebMenuItemTagSubstitutionsMenu,
+    WebMenuItemTagShowSubstitutions,
+    WebMenuItemTagSmartCopyPaste,
+    WebMenuItemTagSmartQuotes,
+    WebMenuItemTagSmartDashes,
+    WebMenuItemTagSmartLinks,
+    WebMenuItemTagTextReplacement,
+    WebMenuItemTagTransformationsMenu,
+    WebMenuItemTagMakeUpperCase,
+    WebMenuItemTagMakeLowerCase,
+    WebMenuItemTagCapitalize,
+    WebMenuItemTagChangeBack,
+    WebMenuItemTagBaseApplication = 10000
+};
+
+@class WebSecurityOrigin;
+
+@protocol WebGeolocationPolicyListener <NSObject>
+- (void)allow;
+- (void)deny;
+@end
+
+@interface NSObject (WebUIDelegatePrivate)
+
+- (void)webView:(WebView *)webView addMessageToConsole:(NSDictionary *)message;
+
+- (NSView *)webView:(WebView *)webView plugInViewWithArguments:(NSDictionary *)arguments;
+
+#if ENABLE_DASHBOARD_SUPPORT
+// regions is an dictionary whose keys are regions label and values are arrays of WebDashboardRegions.
+- (void)webView:(WebView *)webView dashboardRegionsChanged:(NSDictionary *)regions;
+#endif
+
+- (void)webView:(WebView *)sender dragImage:(NSImage *)anImage at:(NSPoint)viewLocation offset:(NSSize)initialOffset event:(NSEvent *)event pasteboard:(NSPasteboard *)pboard source:(id)sourceObj slideBack:(BOOL)slideFlag forView:(NSView *)view;
+- (void)webView:(WebView *)sender didDrawRect:(NSRect)rect;
+- (void)webView:(WebView *)sender didScrollDocumentInFrameView:(WebFrameView *)frameView;
+// FIXME: If we ever make this method public, it should include a WebFrame parameter.
+- (BOOL)webViewShouldInterruptJavaScript:(WebView *)sender;
+- (void)webView:(WebView *)sender willPopupMenu:(NSMenu *)menu;
+- (void)webView:(WebView *)sender contextMenuItemSelected:(NSMenuItem *)item forElement:(NSDictionary *)element;
+- (void)webView:(WebView *)sender saveFrameView:(WebFrameView *)frameView showingPanel:(BOOL)showingPanel;
+- (BOOL)webView:(WebView *)sender shouldHaltPlugin:(DOMNode *)pluginNode isWindowed:(BOOL)isWindowed pluginName:(NSString *)pluginName;
+- (BOOL)webView:(WebView *)sender didPressMissingPluginButton:(DOMElement *)element;
+/*!
+    @method webView:frame:exceededDatabaseQuotaForSecurityOrigin:database:
+    @param sender The WebView sending the delegate method.
+    @param frame The WebFrame whose JavaScript initiated this call.
+    @param origin The security origin that needs a larger quota.
+    @param databaseIdentifier The identifier of the database involved.
+*/
+- (void)webView:(WebView *)sender frame:(WebFrame *)frame exceededDatabaseQuotaForSecurityOrigin:(WebSecurityOrigin *)origin database:(NSString *)databaseIdentifier;
+
+- (WebView *)webView:(WebView *)sender createWebViewWithRequest:(NSURLRequest *)request windowFeatures:(NSDictionary *)features;
+
+- (BOOL)webView:(WebView *)sender shouldReplaceUploadFile:(NSString *)path usingGeneratedFilename:(NSString **)filename;
+- (NSString *)webView:(WebView *)sender generateReplacementFile:(NSString *)path;
+
+/*!
+    @method webView:decidePolicyForGeolocationRequestFromOrigin:frame:listener:
+    @abstract 
+    @param webView The WebView sending the delegate method.
+    @param origin The security origin that would like to use Geolocation.
+    @param frame The WebFrame whose JavaScript initiated this call.
+    @param listener The object to call when the decision is made
+*/
+- (void)webView:(WebView *)webView decidePolicyForGeolocationRequestFromOrigin:(WebSecurityOrigin *)origin
+                                                                         frame:(WebFrame *)frame
+                                                                      listener:(id<WebGeolocationPolicyListener>)listener;
+
+- (void)webView:(WebView *)sender formDidFocusNode:(DOMNode *)node;
+- (void)webView:(WebView *)sender formDidBlurNode:(DOMNode *)node;
+
+/*!
+    @method webView:printFrame:
+    @abstract Informs that a WebFrame needs to be printed
+    @param webView The WebView sending the delegate method
+    @param frameView The WebFrame needing to be printed
+    @discussion This method is called when a script or user requests the page to be printed.
+*/
+- (void)webView:(WebView *)sender printFrame:(WebFrame *)frame;
+
+@end