18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*
20bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc.  All rights reserved.
38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Redistribution and use in source and binary forms, with or without
58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modification, are permitted provided that the following conditions
68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * are met:
78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 1. Redistributions of source code must retain the above copyright
88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *    notice, this list of conditions and the following disclaimer.
98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 2. Redistributions in binary form must reproduce the above copyright
108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *    notice, this list of conditions and the following disclaimer in the
118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *    documentation and/or other materials provided with the distribution.
128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef DO_NO_IMPORTS
278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectimport "oaidl.idl";
288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectimport "ocidl.idl";
298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectimport "IWebUndoTarget.idl";
308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectimport "IWebURLRequest.idl";
318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectimport "IWebFrame.idl";
328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectinterface IWebFrame;
358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectinterface IWebView;
368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectinterface IWebURLRequest;
378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectinterface IWebUndoTarget;
388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*!
408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @enum WebMenuItemTag
418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @discussion Each menu item in the default menu items array passed in
428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    contextMenuItemsForElement:defaultMenuItems: has its tag set to one of the WebMenuItemTags.
438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    When iterating through the default menu items array, use the tag to differentiate between them.
448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/
458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef enum WebMenuItemTag {
468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagOpenLinkInNewWindow=1,
478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagDownloadLinkToDisk,
488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagCopyLinkToClipboard,
498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagOpenImageInNewWindow,
508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagDownloadImageToDisk,
518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagCopyImageToClipboard,
528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagOpenFrameInNewWindow,
538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagCopy,
548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagGoBack,
558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagGoForward,
568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagStop,
578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagReload,
588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagCut,
598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagPaste,
608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagSpellingGuess,
618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagNoGuessesFound,
628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagIgnoreSpelling,
638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagLearnSpelling,
648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagOther,
658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagSearchInSpotlight,
668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagSearchWeb,
678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagLookUpInDictionary,
688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagOpenWithDefaultApplication,
698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemPDFActualSize,
708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemPDFZoomIn,
718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemPDFZoomOut,
728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemPDFAutoSize,
738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemPDFSinglePage,
748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemPDFFacingPages,
758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemPDFContinuous,
768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemPDFNextPage,
778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemPDFPreviousPage,
788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    // FIXME: Review these names before release!
798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagOpenLink = 2000,
808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagIgnoreGrammar,
818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebtMenuItemTagSpellingMenu,
828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagShowSpellingPanel,
838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagCheckSpelling,
848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagCheckSpellingWhileTyping,
858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagCheckGrammarWithSpelling,
868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagFontMenu,
878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagShowFonts,
888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagBold,
898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagItalic,
908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagUnderline,
918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagOutline,
928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagStyles,
938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagShowColors,
948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagSpeechMenu,
958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagStartSpeaking,
968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagStopSpeaking,
978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagWritingDirectionMenu,
988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagDefaultDirection,
998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagLeftToRight,
1008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagRightToLeft,
1018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagPDFSinglePageScrolling,
1028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagPDFFacingPagesScrolling,
1038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemTagInspectElement,
1048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMenuItemBaseApplicationTag=10000
1058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} WebMenuItemTag;
1068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*!
1088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @enum WebDragDestinationAction
1098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @abstract Actions that the destination of a drag can perform.
1108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @constant WebDragDestinationActionNone No action
1118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @constant WebDragDestinationActionDHTML Allows DHTML (such as JavaScript) to handle the drag
1128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @constant WebDragDestinationActionEdit Allows editable documents to be edited from the drag
1138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @constant WebDragDestinationActionLoad Allows a location change from the drag
1148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @constant WebDragDestinationActionAny Allows any of the above to occur
1158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/
1168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef enum WebDragDestinationAction {
1178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebDragDestinationActionNone    = 0,
1188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebDragDestinationActionDHTML   = 1,
1198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebDragDestinationActionEdit    = 2,
1208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebDragDestinationActionLoad    = 4,
1218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebDragDestinationActionAny     = (unsigned long)-1
1228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} WebDragDestinationAction;
1238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*!
1258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @enum WebDragSourceAction
1268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @abstract Actions that the source of a drag can perform.
1278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @constant WebDragSourceActionNone No action
1288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @constant WebDragSourceActionDHTML Allows DHTML (such as JavaScript) to start a drag
1298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @constant WebDragSourceActionImage Allows an image drag to occur
1308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @constant WebDragSourceActionLink Allows a link drag to occur
1318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @constant WebDragSourceActionSelection Allows a selection drag to occur
1328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @constant WebDragSourceActionAny Allows any of the above to occur
1338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/
1348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef enum WebDragSourceAction {
1358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebDragSourceActionNone         = 0,
1368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebDragSourceActionDHTML        = 1,
1378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebDragSourceActionImage        = 2,
1388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebDragSourceActionLink         = 4,
1398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebDragSourceActionSelection    = 8,
1408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebDragSourceActionAny          = (unsigned long)-1
1418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} WebDragSourceAction;
1428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*!
1458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @protocol WebOpenPanelResultListener
1468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @discussion This protocol is used to call back with the results of
1478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    the file open panel requested by runOpenPanelForFileButtonWithResultListener:
1488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @protocol WebOpenPanelResultListener <NSObject>
1498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/
1508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project[
1518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    object,
1528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    oleautomation,
1538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    uuid(634198C7-9DFC-4aba-9E8C-90AEEA7A4144),
1548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    pointer_default(unique)
1558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project]
1568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectinterface IWebOpenPanelResultListener : IUnknown
1578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
1598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method chooseFilename:
1608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Call this method to return a filename from the file open panel.
1618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param fileName
1628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (void)chooseFilename:(NSString *)fileName;
1638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
1648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT chooseFilename([out, retval] BSTR* fileName);
1658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
1678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method cancel
1688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Call this method to indicate that the file open panel was cancelled.
1698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (void)cancel;
1708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
1718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT cancel();
1728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*!
1758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @category WebUIDelegate
1768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @discussion A class that implements WebUIDelegate provides
1778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    window-related methods that may be used by Javascript, plugins and
1788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    other aspects of web pages. These methods are used to open new
1798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    windows and control aspects of existing windows.
1808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @interface NSObject (WebUIDelegate)
1818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/
1828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project[
1838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    object,
1848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    oleautomation,
1850bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    uuid(042B7EE3-A5A4-4a8f-8C33-775CD9E89C7C),
1868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    pointer_default(unique)
1878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project]
1888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectinterface IWebUIDelegate : IUnknown
1898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
1918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView:createWebViewWithRequest:
1928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Create a new window and begin to load the specified request.
1938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion The newly created window is hidden, and the window operations delegate on the
1948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        new WebViews will get a webViewShow: call.
1958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param sender The WebView sending the delegate method.
1968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param request The request to load.
1978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @result The WebView for the new window.
1988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (WebView *)webView:(WebView *)sender createWebViewWithRequest:(NSURLRequest *)request;
1998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
2008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT createWebViewWithRequest([in] IWebView* sender, [in] IWebURLRequest* request, [out, retval] IWebView** newWebView);
2018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
2038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webViewShow:
2048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param sender The WebView sending the delegate method.
2058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Show the window that contains the top level view of the WebView,
2068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        ordering it frontmost.
2078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion This will only be called just after createWindowWithRequest:
2088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        is used to create a new window.
2098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (void)webViewShow:(WebView *)sender;
2108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
2118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT webViewShow([in] IWebView* sender);
2128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
2148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webViewClose:
2158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Close the current window.
2168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param sender The WebView sending the delegate method.
2178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion Clients showing multiple views in one window may
2188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        choose to close only the one corresponding to this
2198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        WebView. Other clients may choose to ignore this method
2208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        entirely.
2218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (void)webViewClose:(WebView *)sender;
2228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
2238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT webViewClose([in] IWebView* sender);
2248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
2268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webViewFocus:
2278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Focus the current window (i.e. makeKeyAndOrderFront:).
2288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param The WebView sending the delegate method.
2298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion Clients showing multiple views in one window may want to
2308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        also do something to focus the one corresponding to this WebView.
2318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (void)webViewFocus:(WebView *)sender;
2328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
2338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT webViewFocus([in] IWebView* sender);
2348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
2368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webViewUnfocus:
2378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Unfocus the current window.
2388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param sender The WebView sending the delegate method.
2398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion Clients showing multiple views in one window may want to
2408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        also do something to unfocus the one corresponding to this WebView.
2418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (void)webViewUnfocus:(WebView *)sender;
2428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
2438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT webViewUnfocus([in] IWebView* sender);
2448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
2468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webViewFirstResponder:
2478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Get the first responder for this window.
2488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param sender The WebView sending the delegate method.
2498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion This method should return the focused control in the
2508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        WebView's view, if any. If the view is out of the window
2518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        hierarchy, this might return something than calling firstResponder
2528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        on the real NSWindow would. It's OK to return either nil or the
2538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        real first responder if some control not in the window has focus.
2548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (NSResponder *)webViewFirstResponder:(WebView *)sender;
2558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
2568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT webViewFirstResponder([in] IWebView* sender, [out, retval] OLE_HANDLE* responderHWnd);
2578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
2598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView:makeFirstResponder:
2608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Set the first responder for this window.
2618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param sender The WebView sending the delegate method.
2628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param responder The responder to make first (will always be a view)
2638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion responder will always be a view that is in the view
2648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        subhierarchy of the top-level web view for this WebView. If the
2658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        WebView's top level view is currently out of the view
2668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        hierarchy, it may be desirable to save the first responder
2678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        elsewhere, or possibly ignore this call.
2688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (void)webView:(WebView *)sender makeFirstResponder:(NSResponder *)responder;
2698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
2708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT makeFirstResponder([in] IWebView* sender, [in] OLE_HANDLE responderHWnd);
2718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
2738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView:setStatusText:
2748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Set the window's status display, if any, to the specified string.
2758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param sender The WebView sending the delegate method.
2768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param text The status text to set
2778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (void)webView:(WebView *)sender setStatusText:(NSString *)text;
2788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
2798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT setStatusText([in] IWebView* sender, [in] BSTR text);
2808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
2828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webViewStatusText:
2838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Get the currently displayed status text.
2848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param sender The WebView sending the delegate method.
2858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @result The status text
2868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (NSString *)webViewStatusText:(WebView *)sender;
2878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
2888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT webViewStatusText([in] IWebView* sender, [out, retval] BSTR* text);
2898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
2918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webViewAreToolbarsVisible:
2928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Determine whether the window's toolbars are currently visible
2938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param sender The WebView sending the delegate method.
2948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion This method should return YES if the window has any
2958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        toolbars that are currently on, besides the status bar. If the app
2968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        has more than one toolbar per window, for example a regular
2978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        command toolbar and a favorites bar, it should return YES from
2988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        this method if at least one is on.
2998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @result YES if at least one toolbar is visible, otherwise NO.
3008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (BOOL)webViewAreToolbarsVisible:(WebView *)sender;
3018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
3028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT webViewAreToolbarsVisible([in] IWebView* sender, [out, retval] BOOL* visible);
3038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
3048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
3058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView:setToolbarsVisible:
3068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param sender The WebView sending the delegate method.
3078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Set whether the window's toolbars are currently visible.
3088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param visible New value for toolbar visibility
3098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion Setting this to YES should turn on all toolbars
3108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        (except for a possible status bar). Setting it to NO should turn
3118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        off all toolbars (with the same exception).
3128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (void)webView:(WebView *)sender setToolbarsVisible:(BOOL)visible;
3138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
3148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT setToolbarsVisible([in] IWebView* sender, [in] BOOL visible);
3158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
3168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
3178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webViewIsStatusBarVisible:
3188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Determine whether the status bar is visible.
3198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param sender The WebView sending the delegate method.
3208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @result YES if the status bar is visible, otherwise NO.
3218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (BOOL)webViewIsStatusBarVisible:(WebView *)sender;
3228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
3238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT webViewIsStatusBarVisible([in] IWebView* sender, [out, retval] BOOL* visible);
3248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
3258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
3268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView:setStatusBarVisible:
3278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Set whether the status bar is currently visible.
3288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param visible The new visibility value
3298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion Setting this to YES should show the status bar,
3308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        setting it to NO should hide it.
3318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (void)webView:(WebView *)sender setStatusBarVisible:(BOOL)visible;
3328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
3338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT setStatusBarVisible([in] IWebView* sender, [in] BOOL visible);
3348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
3358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
3368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webViewIsResizable:
3378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Determine whether the window is resizable or not.
3388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param sender The WebView sending the delegate method.
3398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @result YES if resizable, NO if not.
3408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion If there are multiple views in the same window, they
3418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        have have their own separate resize controls and this may need to
3428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        be handled specially.
3438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (BOOL)webViewIsResizable:(WebView *)sender;
3448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
3458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT webViewIsResizable([in] IWebView* sender, [out, retval] BOOL* resizable);
3468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
3478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
3488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView:setResizable:
3498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Set the window to resizable or not
3508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param sender The WebView sending the delegate method.
3518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param resizable YES if the window should be made resizable, NO if not.
3528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion If there are multiple views in the same window, they
3538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        have have their own separate resize controls and this may need to
3548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        be handled specially.
3558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (void)webView:(WebView *)sender setResizable:(BOOL)resizable;
3568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
3578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT setResizable([in] IWebView* sender, [in] BOOL resizable);
3588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
3598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
3608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView:setFrame:
3618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Set the window's frame rect
3628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param sender The WebView sending the delegate method.
3638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param frame The new window frame size
3648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion Even though a caller could set the frame directly using the NSWindow,
3658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        this method is provided so implementors of this protocol can do special
3668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        things on programmatic move/resize, like avoiding autosaving of the size.
3678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (void)webView:(WebView *)sender setFrame:(NSRect)frame;
3688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
3698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT setFrame([in] IWebView* sender, [in] RECT* frame);
3708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
3718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
3728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webViewFrame:
3738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param sender The WebView sending the delegate method.
3748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract REturn the window's frame rect
3758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion
3768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (NSRect)webViewFrame:(WebView *)sender;
3778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
3788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT webViewFrame([in] IWebView* sender, [out, retval] RECT* frame);
3798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
3808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
3818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView:setContentRect:
3828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Set the window's content rect
3838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param sender The WebView sending the delegate method.
3848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param frame The new window content rect
3858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion Even though a caller could set the content rect
3868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        directly using the NSWindow, this method is provided so
3878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        implementors of this protocol can do special things on
3888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        programmatic move/resize, like avoiding autosaving of the size.
3898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (void)webView:(WebView *)sender setContentRect:(NSRect)contentRect;
3908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
3918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT setContentRect([in] IWebView* sender, [in] RECT* contentRect);
3928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
3938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
3948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webViewContentRect:
3958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Return the window's content rect
3968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion
3978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (NSRect)webViewContentRect:(WebView *)sender;
3988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
3998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT webViewContentRect([in] IWebView* sender, [out, retval] RECT* contentRect);
4008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
4018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
4028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView:runJavaScriptAlertPanelWithMessage:
4038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Display a JavaScript alert panel
4048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param sender The WebView sending the delegate method.
4058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param message The message to display
4068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion Clients should visually indicate that this panel comes
4078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        from JavaScript. The panel should have a single OK button.
4088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (void)webView:(WebView *)sender runJavaScriptAlertPanelWithMessage:(NSString *)message;
4098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
4108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT runJavaScriptAlertPanelWithMessage([in] IWebView* sender, [in] BSTR message);
4118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
4128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
4138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView:runJavaScriptConfirmPanelWithMessage:
4148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Display a JavaScript confirm panel
4158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param sender The WebView sending the delegate method.
4168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param message The message to display
4178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @result YES if the user hit OK, no if the user chose Cancel.
4188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion Clients should visually indicate that this panel comes
4198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        from JavaScript. The panel should have two buttons, e.g. "OK" and
4208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        "Cancel".
4218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (BOOL)webView:(WebView *)sender runJavaScriptConfirmPanelWithMessage:(NSString *)message;
4228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
4238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT runJavaScriptConfirmPanelWithMessage([in] IWebView* sender, [in] BSTR message, [out, retval] BOOL* result);
4248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
4258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
4268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView:runJavaScriptTextInputPanelWithPrompt:defaultText:
4278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Display a JavaScript text input panel
4288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param sender The WebView sending the delegate method.
4298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param message The message to display
4308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param defaultText The initial text for the text entry area.
4318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @result The typed text if the user hit OK, otherwise nil.
4328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion Clients should visually indicate that this panel comes
4338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        from JavaScript. The panel should have two buttons, e.g. "OK" and
4348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        "Cancel", and an area to type text.
4358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (NSString *)webView:(WebView *)sender runJavaScriptTextInputPanelWithPrompt:(NSString *)prompt defaultText:(NSString *)defaultText;
4368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
4378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT runJavaScriptTextInputPanelWithPrompt([in] IWebView* sender, [in] BSTR message, [in] BSTR defaultText, [out, retval] BSTR* result);
4388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
4398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
4408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView:runJavaScriptConfirmPanelWithMessage:initiatedByFrame:
4418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Display a confirm panel by an "before unload" event handler.
4428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param sender The WebView sending the delegate method.
4438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param message The message to display.
4448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param frame The WebFrame whose JavaScript initiated this call.
4458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @result YES if the user hit OK, NO if the user chose Cancel.
4468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion Clients should include a message in addition to the one
4478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        supplied by the web page that indicates. The panel should have
4488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        two buttons, e.g. "OK" and "Cancel".
4498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (BOOL)webView:(WebView *)sender runBeforeUnloadConfirmPanelWithMessage:(NSString *)message initiatedByFrame:(WebFrame *)frame;
4508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
4518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT runBeforeUnloadConfirmPanelWithMessage([in] IWebView* sender, [in] BSTR message, [in] IWebFrame* initiatedByFrame, [out, retval] BOOL* result);
4528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
4538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
4548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView:runOpenPanelForFileButtonWithResultListener:
4558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Display a file open panel for a file input control.
4568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param sender The WebView sending the delegate method.
4578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param resultListener The object to call back with the results.
4588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion This method is passed a callback object instead of giving a return
4598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        value so that it can be handled with a sheet.
4608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (void)webView:(WebView *)sender runOpenPanelForFileButtonWithResultListener:(id<WebOpenPanelResultListener>)resultListener;
4618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
4628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT runOpenPanelForFileButtonWithResultListener([in] IWebView* sender, [in] IWebOpenPanelResultListener* resultListener);
4638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
4648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
4658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView:mouseDidMoveOverElement:modifierFlags:
4668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Update the window's feedback for mousing over links to reflect a new item the mouse is over
4678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        or new modifier flags.
4688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param sender The WebView sending the delegate method.
4698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param elementInformation Dictionary that describes the element that the mouse is over, or nil.
4708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param modifierFlags The modifier flags as in NSEvent.
4718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (void)webView:(WebView *)sender mouseDidMoveOverElement:(NSDictionary *)elementInformation modifierFlags:(WebNSUInt)modifierFlags;
4728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
4738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT mouseDidMoveOverElement([in] IWebView* sender, [in] IPropertyBag* elementInformation, [in] UINT modifierFlags);
4748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
4758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
4768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView:contextMenuItemsForElement:defaultMenuItems:
4778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Returns the menu items to display in an element's contextual menu.
4788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param sender The WebView sending the delegate method.
4798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param element A dictionary representation of the clicked element.
4808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param defaultMenuItems An array of default NSMenuItems to include in all contextual menus.
4818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @result An array of NSMenuItems to include in the contextual menu.
4828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (NSArray *)webView:(WebView *)sender contextMenuItemsForElement:(NSDictionary *)element defaultMenuItems:(NSArray *)defaultMenuItems;
4838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
4848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT contextMenuItemsForElement([in] IWebView* sender, [in] IPropertyBag* element, [in] OLE_HANDLE defaultItemsHMenu, [out, retval] OLE_HANDLE* resultHMenu);
4858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
4868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
4878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView:validateUserInterfaceItem:defaultValidation:
4888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Controls UI validation
4898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param webView The WebView sending the delegate method
4908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param item The user interface item being validated
4918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @pararm defaultValidation Whether or not the WebView thinks the item is valid
4928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion This method allows the UI delegate to control WebView's validation of user interface items.
4938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        See WebView.h to see the methods to that WebView can currently validate. See NSUserInterfaceValidations and
4948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        NSValidatedUserInterfaceItem for information about UI validation.
4958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (BOOL)webView:(WebView *)webView validateUserInterfaceItem:(id <NSValidatedUserInterfaceItem>)item defaultValidation:(BOOL)defaultValidation;
4968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
4978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT validateUserInterfaceItem([in] IWebView* webView, [in] UINT itemCommandID, [in] BOOL defaultValidation, [out, retval] BOOL* isValid);
4988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
4998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
5008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView:shouldPerformAction:fromSender:
5018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Controls actions
5028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param webView The WebView sending the delegate method
5038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param action The action being sent
5048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param sender The sender of the action
5058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion This method allows the UI delegate to control WebView's behavior when an action is being sent.
5068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        For example, if the action is copy:, the delegate can return YES to allow WebView to perform its default
5078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        copy behavior or return NO and perform copy: in some other way. See WebView.h to see the actions that
5088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        WebView can perform.
5098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (BOOL)webView:(WebView *)webView shouldPerformAction:(SEL)action fromSender:(id)sender;
5108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
5118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT shouldPerformAction([in] IWebView* webView, [in] UINT itemCommandID, [in] UINT sender);
5128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
5138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
5148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView:dragDestinationActionMaskForDraggingInfo:
5158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Controls behavior when dragging to a WebView
5168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param webView The WebView sending the delegate method
5178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param draggingInfo The dragging info of the drag
5188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion This method is called periodically as something is dragged over a WebView. The UI delegate can return a mask
5198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        indicating which drag destination actions can occur, WebDragDestinationActionAny to allow any kind of action or
5208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        WebDragDestinationActionNone to not accept the drag.
5218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (unsigned)webView:(WebView *)webView dragDestinationActionMaskForDraggingInfo:(id <NSDraggingInfo>)draggingInfo;
5228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
5238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT dragDestinationActionMaskForDraggingInfo([in] IWebView* webView, [in] IDataObject* draggingInfo, [out, retval] WebDragDestinationAction* action);
5248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
5258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
5268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView:willPerformDragDestinationAction:forDraggingInfo:
5278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Informs that WebView will perform a drag destination action
5288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param webView The WebView sending the delegate method
5298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param action The drag destination action
5308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param draggingInfo The dragging info of the drag
5318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion This method is called after the last call to webView:dragDestinationActionMaskForDraggingInfo: after something is dropped on a WebView.
5328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        This method informs the UI delegate of the drag destination action that WebView will perform.
5338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (void)webView:(WebView *)webView willPerformDragDestinationAction:(WebDragDestinationAction)action forDraggingInfo:(id <NSDraggingInfo>)draggingInfo;
5348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
5358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT willPerformDragDestinationAction([in] IWebView* webView, [in] WebDragDestinationAction action, [in] IDataObject* draggingInfo);
5368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
5378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
5388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView:dragSourceActionMaskForPoint:
5398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Controls behavior when dragging from a WebView
5408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param webView The WebView sending the delegate method
5418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param point The point where the drag started in the coordinates of the WebView
5428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion This method is called after the user has begun a drag from a WebView. The UI delegate can return a mask indicating
5438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        which drag source actions can occur, WebDragSourceActionAny to allow any kind of action or WebDragSourceActionNone to not begin a drag.
5448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (unsigned)webView:(WebView *)webView dragSourceActionMaskForPoint:(NSPoint)point;
5458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
5468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT dragSourceActionMaskForPoint([in] IWebView* webView, [in] LPPOINT point, [out, retval] WebDragSourceAction* action);
5478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
5488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
5498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView:willPerformDragSourceAction:fromPoint:withPasteboard:
5508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Informs that a drag a has begun from a WebView
5518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param webView The WebView sending the delegate method
5528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param action The drag source action
5538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param point The point where the drag started in the coordinates of the WebView
5548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param pasteboard The drag pasteboard
5558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion This method is called after webView:dragSourceActionMaskForPoint: is called after the user has begun a drag from a WebView.
5568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        This method informs the UI delegate of the drag source action that will be performed and gives the delegate an opportunity to modify
5578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        the contents of the dragging pasteboard.
5588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        - (void)webView:(WebView *)webView willPerformDragSourceAction:(WebDragSourceAction)action fromPoint:(NSPoint)point withPasteboard:(NSPasteboard *)pasteboard;
5598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
5600bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    HRESULT willPerformDragSourceAction([in] IWebView* webView, [in] WebDragSourceAction action, [in] LPPOINT point, [in] IDataObject* pasteboard, [out, retval] IDataObject** newPasteboard);
5618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
5628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
5638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView:contextMenuItemSelected:ForElement:
5648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Perform the action associated with the selected item.
5658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param sender The WebView sending the delegate method.
5668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param item The menu item that was selected.
5678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param element A dictionary representation of the clicked element.
5688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
5698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    [local] HRESULT contextMenuItemSelected([in] IWebView* sender, [in] void* item, [in] IPropertyBag* element);
5708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
5718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*
5728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method hasCustomMenuImplementation:
5738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Returns whether the application uses the following functions to create a custom menu impementation.
5748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
5758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT hasCustomMenuImplementation([out, retval] BOOL* hasCustomMenus);
5768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
5778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*
5788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView:trackCutsomPopupMenu
5798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Adds custom draw data to the menu items and calls a custom trackPopupMenu.
5808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param sender The WebView sending the delegate method.
5818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param menu The menu that we want to pop up.
5828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param point The point associated with the context menu event in the coordinates of the WebView
5838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
5848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT trackCustomPopupMenu([in] IWebView* sender, [in] OLE_HANDLE hMenu, [in] LPPOINT point);
5858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
5868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*
5878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView:measureCustomMenuItem
5888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract This is called when the WM_MEASUREITEM command is received to measure the custom menu items
5898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param sender The WebView sending the delegate method.
5908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param measureItem The LPMEASUREITEMSTRUCT associated with the item.
5918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
5928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    [local] HRESULT measureCustomMenuItem([in] IWebView* sender, [in] void* measureItem);
5938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
5948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*
5958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView:drawCustomMenuItem
5968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract This is called when the WM_DRAWITEM command is received to draw the custom menu item
5978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param sender The WebView sending the delegate method.
5988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param drawItem The LPDRAWITEMSTRUCT associated with the item.
5998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
6008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    [local] HRESULT drawCustomMenuItem([in] IWebView* sender, [in] void* drawItem);
6018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
6028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*
6038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView:addCustomMenuDrawingData
6048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Add custom data to the menu that the delegate can use when asked to draw.
6058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param sender The WebView sending the delegate method.
6068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param menu The cutsom menu to clean up.
6078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @discussion This method is called for submenus as well.
6088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
6098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT addCustomMenuDrawingData([in] IWebView* sender, [in] OLE_HANDLE hMenu);
6108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
6118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*
6128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView:cleanUpCustomMenuDrawingData
6138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Clean up any custom data added to the menu items
6148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param sender The WebView sending the delegate method.
6158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param menu The cutsom menu to clean up.
6168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
6178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT cleanUpCustomMenuDrawingData([in] IWebView* sender, [in] OLE_HANDLE hMenu);
6188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
6198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
6208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView:canTakeFocus:
6218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Informs whether focus can be transferred out of the WebView in the specified direction
6228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param sender The WebView sending the delegate method.
6238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param forward Whether focus is moving forward or backward.
6248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
6258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT canTakeFocus([in] IWebView* sender, [in] BOOL forward, [out] BOOL* result);
6268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
6278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
6288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method webView:takeFocus:
6298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Instructs the delegate to take focus out of the WebView
6308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param sender The WebView sending the delegate method.
6318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param forward Whether focus is moving forward or backward.
6328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
6338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT takeFocus([in] IWebView* sender, [in] BOOL forward);
6348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
6358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /// Undo related UI delegate methods --------------------------------------------------------------------------------
6368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
6378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
6388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method registerUndoWithTarget:
6398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Registers an undo operation of a IWebUndoTarget on the undo/redo stack.
6408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param target The target that will be called back when the action is undone
6418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param actionName The name of the action - this will be passed back to the target when we need to undo the operation
6428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param actionArg An object that target used to save undo information
6438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
6448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT registerUndoWithTarget([in] IWebUndoTarget* target, [in] BSTR actionName, [in] IUnknown* actionArg);
6458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
6468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
6478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method removeAllActionsWithTarget:
6488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract remove all the undo operations that are registered for the passed in target on the undo/redo stack.
6498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param target
6508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
6518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT removeAllActionsWithTarget([in] IWebUndoTarget* target);
6528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
6538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
6548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method setActionTitle:
6558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Sets the name of the action for the current group of undo operations
6568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @param actionName Name of the action
6578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
6588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT setActionTitle([in] BSTR actionTitle);
6598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
6608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
6618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method undo:
6628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Undo the last group of operations
6638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
6648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT undo();
6658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
6668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
6678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method redo:
6688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Redo the last group of operations
6698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
6708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT redo();
6718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
6728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
6738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method canUndo:
6748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Returns whether there's anything on the undo stack to be undone
6758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
6768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT canUndo([out, retval] BOOL* result);
6778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
6788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*!
6798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @method canRedo:
6808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @abstract Returns whether there's anything on the redo stack to be redone
6818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    */
6828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT canRedo([out, retval] BOOL* result);
6838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
6848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*!
6858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @method webView:printFrame:
6868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @abstract Informs that a WebFrame needs to be printed
6878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @param webView The WebView sending the delegate method
6888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @param frame The WebFrame needing to be printed
6898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @discussion This method is called when a script or user requests the page to be printed.
6908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    In this method the delegate can prepare the WebFrame to be printed.
6918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/
6928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT printFrame([in] IWebView* webView, [in] IWebFrame* frame);
6938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
6948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*!
6958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @method webView:ftpDirectoryTemplatePath
6968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @abstract Returns the path to the FTP directory listing template document
6978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @param webView The WebView sending the delegate method
6988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @param path The path to the template document
6998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @discussion This method is called when an FTP directory listing is viewed in a webView.
7008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    In practice, all WebViews show the same template document data that was loaded for the very
7018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    first WebView that displayed a directory listing, so this will only be called once.
7028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/
7038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT ftpDirectoryTemplatePath([in] IWebView* webView, [out, retval] BSTR* path);
7048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
7058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*!
7068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @method webViewHeaderHeight:
7078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @param webView The WebView sending the delegate method
7088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @abstract Reserve a height for the printed page header.
7098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @result The height to reserve for the printed page header, return 0.0 to not reserve any space for a header.
7108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @discussion The height returned will be used to calculate the rect passed to webView:drawHeaderInRect:.
7118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
7128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    - (float)webViewHeaderHeight:(WebView *)sender;
7138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/
7148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT webViewHeaderHeight([in] IWebView* webView, [out, retval] float* result);
7158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
7168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*!
7178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @method webViewFooterHeight:
7188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @param webView The WebView sending the delegate method
7198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @abstract Reserve a height for the printed page footer.
7208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @result The height to reserve for the printed page footer, return 0.0 to not reserve any space for a footer.
7218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @discussion The height returned will be used to calculate the rect passed to webView:drawFooterInRect:.
7228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
7238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    - (float)webViewFooterHeight:(WebView *)sender;
7248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/
7258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT webViewFooterHeight([in] IWebView* webView, [out, retval] float* result);
7268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
7278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*!
7288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @method webView:drawHeaderInRect:
7298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @param webView The WebView sending the delegate method
7308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @param rect The NSRect reserved for the header of the page
7318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @abstract The delegate should draw a header for the sender in the supplied rect.
7328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
7338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    - (void)webView:(WebView *)sender drawHeaderInRect:(NSRect)rect;
7348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/
7358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT drawHeaderInRect([in] IWebView* webView, [in] RECT* rect, [in] OLE_HANDLE drawingContext);
7368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
7378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*!
7388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @method webView:drawFooterInRect:
7398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @param webView The WebView sending the delegate method
7408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @param rect The NSRect reserved for the footer of the page
7418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    @abstract The delegate should draw a footer for the sender in the supplied rect.
7428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
7438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    - (void)webView:(WebView *)sender drawFooterInRect:(NSRect)rect;
7448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/
7458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT drawFooterInRect([in] IWebView* webView, [in] RECT* rect, [in] OLE_HANDLE drawingContext, [in] UINT pageIndex, [in] UINT pageCount);
7468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
7478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT webViewPrintingMarginRect([in] IWebView* webView, [out, retval] RECT* rect);
7488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
7498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT canRunModal([in] IWebView* webView, [out, retval] BOOL* canRunBoolean);
7508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT createModalDialog([in] IWebView* sender, [in] IWebURLRequest* request, [out, retval] IWebView** newWebView);
7518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT runModal([in] IWebView* webView);
7528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT isMenuBarVisible([in] IWebView* webView, [out, retval] BOOL* visible);
7538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT setMenuBarVisible([in] IWebView* webView, [in] BOOL visible);
7548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT runDatabaseSizeLimitPrompt([in] IWebView* webView, [in] BSTR displayName, [in] IWebFrame* initiatedByFrame, [out, retval] BOOL* allowed);
7558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT paintCustomScrollbar([in] IWebView* webView, [in] HDC hDC, [in] RECT rect, [in] WebScrollBarControlSize size, [in] WebScrollbarControlState state,
7568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                                 [in] WebScrollbarControlPart pressedPart, [in] BOOL vertical, [in] float value, [in] float proportion, [in] WebScrollbarControlPartMask parts);
7578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    HRESULT paintCustomScrollCorner([in] IWebView* webView, [in] HDC hDC, [in] RECT rect);
7588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
759