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