18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 2006, 2007, 2008 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 "DOMHTML.idl"; 308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectimport "IWebFrame.idl"; 318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectinterface IDOMElement; 348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectinterface IDOMHTMLInputElement; 358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectinterface IDOMHTMLTextAreaElement; 368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectinterface IWebFrame; 378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*! 398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project @protocol WebFormSubmissionListener 408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project @discussion . 418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/ 428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project[ 438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project object, 448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project oleautomation, 458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project uuid(1911D650-035E-4204-8746-ABECF77A4C9B), 468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project pointer_default(unique) 478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project] 488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectinterface IWebFormSubmissionListener : IUnknown 498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project HRESULT continueSubmit(); 518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*! 548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project @class WebFormDelegate 558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project @discussion The WebFormDelegate class responds to all WebFormDelegate protocol 568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project methods by doing nothing. It's provided for the convenience of clients who only want 578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project to implement some of the above methods and ignore others. 588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/ 598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*! 608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project @protocol WebFormDelegate 618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project @discussion . 628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Various methods send by controls that edit text to their delegates, which are all 648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project analogous to similar methods in AppKit/NSControl.h. 658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project These methods are forwarded from widgets used in forms to the WebFormDelegate. 668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/ 678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project[ 688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project object, 698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project oleautomation, 708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project uuid(4CBEC1BD-ABC3-4bdb-8E5E-4D3BCF9E8C1E), 718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project pointer_default(unique) 728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project] 738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectinterface IWebFormDelegate : IUnknown 748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project //- (void)textFieldDidBeginEditing:(DOMHTMLInputElement *)element inFrame:(WebFrame *)frame; 768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project HRESULT textFieldDidBeginEditing([in] IDOMHTMLInputElement* element, [in] IWebFrame* frame); 778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project //- (void)textFieldDidEndEditing:(DOMHTMLInputElement *)element inFrame:(WebFrame *)frame; 798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project HRESULT textFieldDidEndEditing([in] IDOMHTMLInputElement* element, [in] IWebFrame* frame); 808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project //- (void)textDidChangeInTextField:(DOMHTMLInputElement *)element inFrame:(WebFrame *)frame; 828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project HRESULT textDidChangeInTextField([in] IDOMHTMLInputElement* element, [in] IWebFrame* frame); 838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project //- (void)textDidChangeInTextArea:(DOMHTMLTextAreaElement *)element inFrame:(WebFrame *)frame; 858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project HRESULT textDidChangeInTextArea([in] IDOMHTMLTextAreaElement* element, [in] IWebFrame* frame); 868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project //- (BOOL)textField:(DOMHTMLInputElement *)element doCommandBySelector:(SEL)commandSelector inFrame:(WebFrame *)frame; 888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project HRESULT doPlatformCommand([in] IDOMHTMLInputElement* element, [in] BSTR command, [in] IWebFrame* frame, [out, retval] BOOL* result); 898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project //- (BOOL)textField:(DOMHTMLInputElement *)element shouldHandleEvent:(NSEvent *)event inFrame:(WebFrame *)frame; 918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project [local] HRESULT shouldHandleEvent([in] IDOMHTMLInputElement* element, [in] void* event, [in] IWebFrame* frame, [out, retval] BOOL* result); 928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // Sent when a form is just about to be submitted (before the load is started) 948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // listener must be sent continue when the delegate is done. 958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project //- (void)frame:(WebFrame *)frame sourceFrame:(WebFrame *)sourceFrame willSubmitForm:(DOMElement *)form withValues:(NSDictionary *)values submissionListener:(id <WebFormSubmissionListener>)listener; 968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project HRESULT willSubmitForm([in] IWebFrame* frame, [in] IWebFrame* sourceFrame, [in] IDOMElement* form, [in] IPropertyBag* values, [in] IWebFormSubmissionListener* listener); 978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 98