webengine/osswebengine/WebKit/WebView/WebUIDelegate.h
changeset 0 dd21522fd290
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/webengine/osswebengine/WebKit/WebView/WebUIDelegate.h	Mon Mar 30 12:54:55 2009 +0300
@@ -0,0 +1,556 @@
+/*
+ * Copyright (C) 2003, 2004, 2005, 2006 Apple Computer, 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 <Cocoa/Cocoa.h>
+#import <Foundation/NSURLRequest.h>
+
+#if MAC_OS_X_VERSION_MAX_ALLOWED <= MAC_OS_X_VERSION_10_4
+#define WebNSUInteger unsigned int
+#else
+#define WebNSUInteger NSUInteger
+#endif
+
+/*!
+    @enum WebMenuItemTag
+    @discussion Each menu item in the default menu items array passed in
+    contextMenuItemsForElement:defaultMenuItems: has its tag set to one of the WebMenuItemTags.
+    When iterating through the default menu items array, use the tag to differentiate between them.
+*/
+
+enum {
+    WebMenuItemTagOpenLinkInNewWindow=1,
+    WebMenuItemTagDownloadLinkToDisk,
+    WebMenuItemTagCopyLinkToClipboard,
+    WebMenuItemTagOpenImageInNewWindow,
+    WebMenuItemTagDownloadImageToDisk,
+    WebMenuItemTagCopyImageToClipboard,
+    WebMenuItemTagOpenFrameInNewWindow,
+    WebMenuItemTagCopy,
+    WebMenuItemTagGoBack,
+    WebMenuItemTagGoForward,
+    WebMenuItemTagStop,
+    WebMenuItemTagReload,
+    WebMenuItemTagCut,
+    WebMenuItemTagPaste,
+    WebMenuItemTagSpellingGuess,
+    WebMenuItemTagNoGuessesFound,
+    WebMenuItemTagIgnoreSpelling,
+    WebMenuItemTagLearnSpelling,
+    WebMenuItemTagOther,
+    WebMenuItemTagSearchInSpotlight,
+    WebMenuItemTagSearchWeb,
+    WebMenuItemTagLookUpInDictionary,
+    WebMenuItemTagOpenWithDefaultApplication,
+    WebMenuItemPDFActualSize,
+    WebMenuItemPDFZoomIn,
+    WebMenuItemPDFZoomOut,
+    WebMenuItemPDFAutoSize,
+    WebMenuItemPDFSinglePage,
+    WebMenuItemPDFFacingPages,
+    WebMenuItemPDFContinuous,
+    WebMenuItemPDFNextPage,
+    WebMenuItemPDFPreviousPage,
+};
+
+/*!
+    @enum WebDragDestinationAction
+    @abstract Actions that the destination of a drag can perform.
+    @constant WebDragDestinationActionNone No action
+    @constant WebDragDestinationActionDHTML Allows DHTML (such as JavaScript) to handle the drag
+    @constant WebDragDestinationActionEdit Allows editable documents to be edited from the drag
+    @constant WebDragDestinationActionLoad Allows a location change from the drag
+    @constant WebDragDestinationActionAny Allows any of the above to occur
+*/
+typedef enum {
+    WebDragDestinationActionNone    = 0,
+    WebDragDestinationActionDHTML   = 1,
+    WebDragDestinationActionEdit    = 2,
+    WebDragDestinationActionLoad    = 4,
+    WebDragDestinationActionAny     = UINT_MAX
+} WebDragDestinationAction;
+
+/*!
+    @enum WebDragSourceAction
+    @abstract Actions that the source of a drag can perform.
+    @constant WebDragSourceActionNone No action
+    @constant WebDragSourceActionDHTML Allows DHTML (such as JavaScript) to start a drag
+    @constant WebDragSourceActionImage Allows an image drag to occur
+    @constant WebDragSourceActionLink Allows a link drag to occur
+    @constant WebDragSourceActionSelection Allows a selection drag to occur
+    @constant WebDragSourceActionAny Allows any of the above to occur
+*/
+typedef enum {
+    WebDragSourceActionNone         = 0,
+    WebDragSourceActionDHTML        = 1,
+    WebDragSourceActionImage        = 2,
+    WebDragSourceActionLink         = 4,
+    WebDragSourceActionSelection    = 8,
+    WebDragSourceActionAny          = UINT_MAX
+} WebDragSourceAction;
+
+/*!
+    @protocol WebOpenPanelResultListener
+    @discussion This protocol is used to call back with the results of
+    the file open panel requested by runOpenPanelForFileButtonWithResultListener:
+*/
+@protocol WebOpenPanelResultListener <NSObject>
+
+/*!
+    @method chooseFilename:
+    @abstract Call this method to return a filename from the file open panel.
+    @param fileName
+*/
+- (void)chooseFilename:(NSString *)fileName;
+
+/*!
+    @method cancel
+    @abstract Call this method to indicate that the file open panel was cancelled.
+*/
+- (void)cancel;
+
+@end
+
+@class WebView;
+
+/*!
+    @category WebUIDelegate
+    @discussion A class that implements WebUIDelegate provides
+    window-related methods that may be used by Javascript, plugins and
+    other aspects of web pages. These methods are used to open new
+    windows and control aspects of existing windows.
+*/
+@interface NSObject (WebUIDelegate)
+
+/*!
+    @method webView:createWebViewWithRequest:
+    @abstract Create a new window and begin to load the specified request.
+    @discussion The newly created window is hidden, and the window operations delegate on the
+    new WebViews will get a webViewShow: call.
+    @param sender The WebView sending the delegate method.
+    @param request The request to load.
+    @result The WebView for the new window.
+*/
+- (WebView *)webView:(WebView *)sender createWebViewWithRequest:(NSURLRequest *)request;
+
+/*!
+    @method webViewShow:
+    @param sender The WebView sending the delegate method.
+    @abstract Show the window that contains the top level view of the WebView,
+    ordering it frontmost.
+    @discussion This will only be called just after createWindowWithRequest:
+    is used to create a new window.
+*/
+- (void)webViewShow:(WebView *)sender;
+
+/*!
+    @method webView:createWebViewModalDialogWithRequest:
+    @abstract Create a new window and begin to load the specified request.
+    @discussion The newly created window is hidden, and the window operations delegate on the
+    new WebViews will get a webViewShow: call.
+    @param sender The WebView sending the delegate method.
+    @param request The request to load.
+    @result The WebView for the new window.
+*/
+- (WebView *)webView:(WebView *)sender createWebViewModalDialogWithRequest:(NSURLRequest *)request;
+
+/*!
+    @method webViewRunModal:
+    @param sender The WebView sending the delegate method.
+    @abstract Show the window that contains the top level view of the WebView,
+    ordering it frontmost. The window should be run modal in the application.
+    @discussion This will only be called just after createWebViewModalDialogWithRequest:
+    is used to create a new window.
+*/
+- (void)webViewRunModal:(WebView *)sender;
+
+/*!
+    @method webViewClose:
+    @abstract Close the current window. 
+    @param sender The WebView sending the delegate method.
+    @discussion Clients showing multiple views in one window may
+    choose to close only the one corresponding to this
+    WebView. Other clients may choose to ignore this method
+    entirely.
+*/
+- (void)webViewClose:(WebView *)sender;
+
+/*!
+    @method webViewFocus:
+    @abstract Focus the current window (i.e. makeKeyAndOrderFront:).
+    @param The WebView sending the delegate method.
+    @discussion Clients showing multiple views in one window may want to
+    also do something to focus the one corresponding to this WebView.
+*/
+- (void)webViewFocus:(WebView *)sender;
+
+/*!
+    @method webViewUnfocus:
+    @abstract Unfocus the current window.
+    @param sender The WebView sending the delegate method.
+    @discussion Clients showing multiple views in one window may want to
+    also do something to unfocus the one corresponding to this WebView.
+*/
+- (void)webViewUnfocus:(WebView *)sender;
+
+/*!
+    @method webViewFirstResponder:
+    @abstract Get the first responder for this window.
+    @param sender The WebView sending the delegate method.
+    @discussion This method should return the focused control in the
+    WebView's view, if any. If the view is out of the window
+    hierarchy, this might return something than calling firstResponder
+    on the real NSWindow would. It's OK to return either nil or the
+    real first responder if some control not in the window has focus.
+*/
+- (NSResponder *)webViewFirstResponder:(WebView *)sender;
+
+/*!
+    @method webView:makeFirstResponder:
+    @abstract Set the first responder for this window.
+    @param sender The WebView sending the delegate method.
+    @param responder The responder to make first (will always be a view)
+    @discussion responder will always be a view that is in the view
+    subhierarchy of the top-level web view for this WebView. If the
+    WebView's top level view is currently out of the view
+    hierarchy, it may be desirable to save the first responder
+    elsewhere, or possibly ignore this call.
+*/
+- (void)webView:(WebView *)sender makeFirstResponder:(NSResponder *)responder;
+
+/*!
+    @method webView:setStatusText:
+    @abstract Set the window's status display, if any, to the specified string.
+    @param sender The WebView sending the delegate method.
+    @param text The status text to set
+*/
+- (void)webView:(WebView *)sender setStatusText:(NSString *)text;
+
+/*!
+    @method webViewStatusText:
+    @abstract Get the currently displayed status text.
+    @param sender The WebView sending the delegate method.
+    @result The status text
+*/
+- (NSString *)webViewStatusText:(WebView *)sender;
+
+/*!
+    @method webViewAreToolbarsVisible:
+    @abstract Determine whether the window's toolbars are currently visible
+    @param sender The WebView sending the delegate method.
+    @discussion This method should return YES if the window has any
+    toolbars that are currently on, besides the status bar. If the app
+    has more than one toolbar per window, for example a regular
+    command toolbar and a favorites bar, it should return YES from
+    this method if at least one is on.
+    @result YES if at least one toolbar is visible, otherwise NO.
+*/
+- (BOOL)webViewAreToolbarsVisible:(WebView *)sender;
+
+/*!
+    @method webView:setToolbarsVisible:
+    @param sender The WebView sending the delegate method.
+    @abstract Set whether the window's toolbars are currently visible.
+    @param visible New value for toolbar visibility
+    @discussion Setting this to YES should turn on all toolbars
+    (except for a possible status bar). Setting it to NO should turn
+    off all toolbars (with the same exception).
+*/
+- (void)webView:(WebView *)sender setToolbarsVisible:(BOOL)visible;
+
+/*!
+    @method webViewIsStatusBarVisible:
+    @abstract Determine whether the status bar is visible.
+    @param sender The WebView sending the delegate method.
+    @result YES if the status bar is visible, otherwise NO.
+*/
+- (BOOL)webViewIsStatusBarVisible:(WebView *)sender;
+
+/*!
+    @method webView:setStatusBarVisible:
+    @abstract Set whether the status bar is currently visible.
+    @param visible The new visibility value
+    @discussion Setting this to YES should show the status bar,
+    setting it to NO should hide it.
+*/
+- (void)webView:(WebView *)sender setStatusBarVisible:(BOOL)visible;
+
+/*!
+    @method webViewIsResizable:
+    @abstract Determine whether the window is resizable or not.
+    @param sender The WebView sending the delegate method.
+    @result YES if resizable, NO if not.
+    @discussion If there are multiple views in the same window, they
+    have have their own separate resize controls and this may need to
+    be handled specially.
+*/
+- (BOOL)webViewIsResizable:(WebView *)sender;
+
+/*!
+    @method webView:setResizable:
+    @abstract Set the window to resizable or not
+    @param sender The WebView sending the delegate method.
+    @param resizable YES if the window should be made resizable, NO if not.
+    @discussion If there are multiple views in the same window, they
+    have have their own separate resize controls and this may need to
+    be handled specially.
+*/
+- (void)webView:(WebView *)sender setResizable:(BOOL)resizable;
+
+/*!
+    @method webView:setFrame:
+    @abstract Set the window's frame rect
+    @param sender The WebView sending the delegate method.
+    @param frame The new window frame size
+    @discussion Even though a caller could set the frame directly using the NSWindow,
+    this method is provided so implementors of this protocol can do special
+    things on programmatic move/resize, like avoiding autosaving of the size.
+*/
+- (void)webView:(WebView *)sender setFrame:(NSRect)frame;
+
+/*!
+    @method webViewFrame:
+    @param sender The WebView sending the delegate method.
+    @abstract REturn the window's frame rect
+    @discussion 
+*/
+- (NSRect)webViewFrame:(WebView *)sender;
+
+/*!
+    @method webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:
+    @abstract Display a JavaScript alert panel.
+    @param sender The WebView sending the delegate method.
+    @param message The message to display.
+    @param frame The WebFrame whose JavaScript initiated this call.
+    @discussion Clients should visually indicate that this panel comes
+    from JavaScript initiated by the specified frame. The panel should have 
+    a single OK button.
+*/
+- (void)webView:(WebView *)sender runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WebFrame *)frame;
+
+/*!
+    @method webView:runJavaScriptConfirmPanelWithMessage:initiatedByFrame:
+    @abstract Display a JavaScript confirm panel.
+    @param sender The WebView sending the delegate method.
+    @param message The message to display.
+    @param frame The WebFrame whose JavaScript initiated this call.
+    @result YES if the user hit OK, NO if the user chose Cancel.
+    @discussion Clients should visually indicate that this panel comes
+    from JavaScript initiated by the specified frame. The panel should have 
+    two buttons, e.g. "OK" and "Cancel".
+*/
+- (BOOL)webView:(WebView *)sender runJavaScriptConfirmPanelWithMessage:(NSString *)message initiatedByFrame:(WebFrame *)frame;
+
+/*!
+    @method webView:runJavaScriptTextInputPanelWithPrompt:defaultText:initiatedByFrame:
+    @abstract Display a JavaScript text input panel.
+    @param sender The WebView sending the delegate method.
+    @param message The message to display.
+    @param defaultText The initial text for the text entry area.
+    @param frame The WebFrame whose JavaScript initiated this call.
+    @result The typed text if the user hit OK, otherwise nil.
+    @discussion Clients should visually indicate that this panel comes
+    from JavaScript initiated by the specified frame. The panel should have 
+    two buttons, e.g. "OK" and "Cancel", and an area to type text.
+*/
+- (NSString *)webView:(WebView *)sender runJavaScriptTextInputPanelWithPrompt:(NSString *)prompt defaultText:(NSString *)defaultText initiatedByFrame:(WebFrame *)frame;
+
+/*!
+    @method webView:runJavaScriptConfirmPanelWithMessage:initiatedByFrame:
+    @abstract Display a confirm panel by an "before unload" event handler.
+    @param sender The WebView sending the delegate method.
+    @param message The message to display.
+    @param frame The WebFrame whose JavaScript initiated this call.
+    @result YES if the user hit OK, NO if the user chose Cancel.
+    @discussion Clients should include a message in addition to the one
+    supplied by the web page that indicates. The panel should have 
+    two buttons, e.g. "OK" and "Cancel".
+*/
+- (BOOL)webView:(WebView *)sender runBeforeUnloadConfirmPanelWithMessage:(NSString *)message initiatedByFrame:(WebFrame *)frame;
+
+/*!
+    @method webView:runOpenPanelForFileButtonWithResultListener:
+    @abstract Display a file open panel for a file input control.
+    @param sender The WebView sending the delegate method.
+    @param resultListener The object to call back with the results.
+    @discussion This method is passed a callback object instead of giving a return
+    value so that it can be handled with a sheet.
+*/
+- (void)webView:(WebView *)sender runOpenPanelForFileButtonWithResultListener:(id<WebOpenPanelResultListener>)resultListener;
+
+/*!
+    @method webView:mouseDidMoveOverElement:modifierFlags:
+    @abstract Update the window's feedback for mousing over links to reflect a new item the mouse is over
+    or new modifier flags.
+    @param sender The WebView sending the delegate method.
+    @param elementInformation Dictionary that describes the element that the mouse is over, or nil.
+    @param modifierFlags The modifier flags as in NSEvent.
+*/
+- (void)webView:(WebView *)sender mouseDidMoveOverElement:(NSDictionary *)elementInformation modifierFlags:(WebNSUInteger)modifierFlags;
+
+/*!
+    @method webView:contextMenuItemsForElement:defaultMenuItems:
+    @abstract Returns the menu items to display in an element's contextual menu.
+    @param sender The WebView sending the delegate method.
+    @param element A dictionary representation of the clicked element.
+    @param defaultMenuItems An array of default NSMenuItems to include in all contextual menus.
+    @result An array of NSMenuItems to include in the contextual menu.
+*/
+- (NSArray *)webView:(WebView *)sender contextMenuItemsForElement:(NSDictionary *)element defaultMenuItems:(NSArray *)defaultMenuItems;
+
+/*!
+    @method webView:validateUserInterfaceItem:defaultValidation:
+    @abstract Controls UI validation
+    @param webView The WebView sending the delegate method
+    @param item The user interface item being validated
+    @pararm defaultValidation Whether or not the WebView thinks the item is valid
+    @discussion This method allows the UI delegate to control WebView's validation of user interface items.
+    See WebView.h to see the methods to that WebView can currently validate. See NSUserInterfaceValidations and
+    NSValidatedUserInterfaceItem for information about UI validation.
+*/
+- (BOOL)webView:(WebView *)webView validateUserInterfaceItem:(id <NSValidatedUserInterfaceItem>)item defaultValidation:(BOOL)defaultValidation;
+
+/*!
+    @method webView:shouldPerformAction:fromSender:
+    @abstract Controls actions
+    @param webView The WebView sending the delegate method
+    @param action The action being sent
+    @param sender The sender of the action
+    @discussion This method allows the UI delegate to control WebView's behavior when an action is being sent.
+    For example, if the action is copy:, the delegate can return YES to allow WebView to perform its default
+    copy behavior or return NO and perform copy: in some other way. See WebView.h to see the actions that
+    WebView can perform.
+*/
+- (BOOL)webView:(WebView *)webView shouldPerformAction:(SEL)action fromSender:(id)sender;
+
+/*!
+    @method webView:dragDestinationActionMaskForDraggingInfo:
+    @abstract Controls behavior when dragging to a WebView
+    @param webView The WebView sending the delegate method
+    @param draggingInfo The dragging info of the drag
+    @discussion This method is called periodically as something is dragged over a WebView. The UI delegate can return a mask
+    indicating which drag destination actions can occur, WebDragDestinationActionAny to allow any kind of action or
+    WebDragDestinationActionNone to not accept the drag.
+*/
+- (WebNSUInteger)webView:(WebView *)webView dragDestinationActionMaskForDraggingInfo:(id <NSDraggingInfo>)draggingInfo;
+
+/*!
+    @method webView:willPerformDragDestinationAction:forDraggingInfo:
+    @abstract Informs that WebView will perform a drag destination action
+    @param webView The WebView sending the delegate method
+    @param action The drag destination action
+    @param draggingInfo The dragging info of the drag
+    @discussion This method is called after the last call to webView:dragDestinationActionMaskForDraggingInfo: after something is dropped on a WebView.
+    This method informs the UI delegate of the drag destination action that WebView will perform.
+*/
+- (void)webView:(WebView *)webView willPerformDragDestinationAction:(WebDragDestinationAction)action forDraggingInfo:(id <NSDraggingInfo>)draggingInfo;
+
+/*!
+    @method webView:dragSourceActionMaskForPoint:
+    @abstract Controls behavior when dragging from a WebView
+    @param webView The WebView sending the delegate method
+    @param point The point where the drag started in the coordinates of the WebView
+    @discussion This method is called after the user has begun a drag from a WebView. The UI delegate can return a mask indicating
+    which drag source actions can occur, WebDragSourceActionAny to allow any kind of action or WebDragSourceActionNone to not begin a drag.
+*/
+- (WebNSUInteger)webView:(WebView *)webView dragSourceActionMaskForPoint:(NSPoint)point;
+
+/*!
+    @method webView:willPerformDragSourceAction:fromPoint:withPasteboard:
+    @abstract Informs that a drag a has begun from a WebView
+    @param webView The WebView sending the delegate method
+    @param action The drag source action
+    @param point The point where the drag started in the coordinates of the WebView
+    @param pasteboard The drag pasteboard
+    @discussion This method is called after webView:dragSourceActionMaskForPoint: is called after the user has begun a drag from a WebView.
+    This method informs the UI delegate of the drag source action that will be performed and gives the delegate an opportunity to modify
+    the contents of the dragging pasteboard.
+*/
+- (void)webView:(WebView *)webView willPerformDragSourceAction:(WebDragSourceAction)action fromPoint:(NSPoint)point withPasteboard:(NSPasteboard *)pasteboard;
+
+/*!
+    @method webView:printFrameView:
+    @abstract Informs that a WebFrameView needs to be printed
+    @param webView The WebView sending the delegate method
+    @param frameView The WebFrameView needing to be printed
+    @discussion This method is called when a script or user requests the page to be printed.
+    In this method the delegate can prepare the WebFrameView to be printed. Some content that WebKit
+    displays can be printed directly by the WebFrameView, other content will need to be handled by
+    the delegate. To determine if the WebFrameView can handle printing the delegate should check
+    WebFrameView's documentViewShouldHandlePrint, if YES then the delegate can call printDocumentView
+    on the WebFrameView. Otherwise the delegate will need to request a NSPrintOperation from
+    the WebFrameView's printOperationWithPrintInfo to handle the printing.
+*/
+- (void)webView:(WebView *)sender printFrameView:(WebFrameView *)frameView;
+
+/*!
+    @method webViewHeaderHeight:
+    @param webView The WebView sending the delegate method
+    @abstract Reserve a height for the printed page header.
+    @result The height to reserve for the printed page header, return 0.0 to not reserve any space for a header.
+    @discussion The height returned will be used to calculate the rect passed to webView:drawHeaderInRect:.
+*/
+- (float)webViewHeaderHeight:(WebView *)sender;
+
+/*!
+    @method webViewFooterHeight:
+    @param webView The WebView sending the delegate method
+    @abstract Reserve a height for the printed page footer.
+    @result The height to reserve for the printed page footer, return 0.0 to not reserve any space for a footer.
+    @discussion The height returned will be used to calculate the rect passed to webView:drawFooterInRect:.
+*/
+- (float)webViewFooterHeight:(WebView *)sender;
+
+/*!
+    @method webView:drawHeaderInRect:
+    @param webView The WebView sending the delegate method
+    @param rect The NSRect reserved for the header of the page
+    @abstract The delegate should draw a header for the sender in the supplied rect.
+*/
+- (void)webView:(WebView *)sender drawHeaderInRect:(NSRect)rect;
+
+/*!
+    @method webView:drawFooterInRect:
+    @param webView The WebView sending the delegate method
+    @param rect The NSRect reserved for the footer of the page
+    @abstract The delegate should draw a footer for the sender in the supplied rect.
+*/
+- (void)webView:(WebView *)sender drawFooterInRect:(NSRect)rect;
+
+// The following delegate methods are deprecated in favor of the ones above that specify
+// the WebFrame whose JavaScript initiated this call.
+- (void)webView:(WebView *)sender runJavaScriptAlertPanelWithMessage:(NSString *)message;
+- (BOOL)webView:(WebView *)sender runJavaScriptConfirmPanelWithMessage:(NSString *)message;
+- (NSString *)webView:(WebView *)sender runJavaScriptTextInputPanelWithPrompt:(NSString *)prompt defaultText:(NSString *)defaultText;
+
+// The following delegate methods are deprecated. Content rect calculations are now done automatically.
+- (void)webView:(WebView *)sender setContentRect:(NSRect)frame;
+- (NSRect)webViewContentRect:(WebView *)sender;
+
+@end
+
+#undef WebNSUInteger