WebKit/win/Interfaces/DOMEvents.idl
changeset 0 4f2f89ce4247
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebKit/win/Interfaces/DOMEvents.idl	Fri Sep 17 09:02:29 2010 +0300
@@ -0,0 +1,478 @@
+/*
+ * Copyright (C) 2006, 2007, 2008 Apple Inc.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
+ */
+
+#ifndef DO_NO_IMPORTS
+import "oaidl.idl";
+import "ocidl.idl";
+import "DOMCore.idl";
+import "DOMWindow.idl";
+#endif
+
+interface IDOMEvent;
+interface IDOMEventException;
+interface IDOMEventTarget;
+interface IDOMKeyboardEvent;
+interface IDOMMouseEvent;
+interface IDOMMutationEvent;
+interface IDOMNode;
+interface IDOMOverflowEvent;
+interface IDOMUIEvent;
+interface IDOMWheelEvent;
+interface IDOMWindow;
+
+typedef long long DOMTimeStamp;
+
+[
+    object,
+    oleautomation,
+    uuid(7f8a0a96-f864-44fb-87fb-c5f03666e8e6),
+    pointer_default(unique)
+]
+interface IDOMEventListener : IDOMObject
+{
+    //void               handleEvent(in Event evt);
+    HRESULT handleEvent([in] IDOMEvent* evt);
+}
+
+[
+    object,
+    oleautomation,
+    uuid(62343a9e-a779-4e91-818a-14fc178cf4c2),
+    pointer_default(unique)
+]
+interface IDOMEvent : IDOMObject
+{
+    // DOM PhaseType
+    const unsigned short DOMEVENT_CAPTURING_PHASE     = 1;
+    const unsigned short DOMEVENT_AT_TARGET           = 2;
+    const unsigned short DOMEVENT_BUBBLING_PHASE      = 3;
+
+    // Reverse-engineered from Netscape
+    const unsigned short DOMEVENT_MOUSEDOWN           = 1;
+    const unsigned short DOMEVENT_MOUSEUP             = 2;
+    const unsigned short DOMEVENT_MOUSEOVER           = 4;
+    const unsigned short DOMEVENT_MOUSEOUT            = 8;
+    const unsigned short DOMEVENT_MOUSEMOVE           = 16;
+    const unsigned short DOMEVENT_MOUSEDRAG           = 32;
+    const unsigned short DOMEVENT_CLICK               = 64;
+    const unsigned short DOMEVENT_DBLCLICK            = 128;
+    const unsigned short DOMEVENT_KEYDOWN             = 256;
+    const unsigned short DOMEVENT_KEYUP               = 512;
+    const unsigned short DOMEVENT_KEYPRESS            = 1024;
+    const unsigned short DOMEVENT_DRAGDROP            = 2048;
+    const unsigned short DOMEVENT_FOCUS               = 4096;
+    const unsigned short DOMEVENT_BLUR                = 8192;
+    const unsigned short DOMEVENT_SELECT              = 16384;
+    const unsigned short DOMEVENT_CHANGE              = 32768;
+
+    //readonly attribute DOMString        type;
+    HRESULT type([out, retval] BSTR* result);
+
+    //readonly attribute EventTarget      target;
+    HRESULT target([out, retval] IDOMEventTarget** result);
+
+    //readonly attribute EventTarget      currentTarget;
+    HRESULT currentTarget([out, retval] IDOMEventTarget** result);
+
+    //readonly attribute unsigned short   eventPhase;
+    HRESULT eventPhase([out, retval] unsigned short* result);
+
+    //readonly attribute boolean          bubbles;
+    HRESULT bubbles([out, retval] BOOL* result);
+
+    //readonly attribute boolean          cancelable;
+    HRESULT cancelable([out, retval] BOOL* result);
+
+    //readonly attribute DOMTimeStamp     timeStamp;
+    HRESULT timeStamp([out, retval] DOMTimeStamp* result);
+
+    //void               stopPropagation();
+    HRESULT stopPropagation();
+
+    //void               preventDefault();
+    HRESULT preventDefault();
+
+    //[OldStyleObjC] void initEvent(in DOMString eventTypeArg, 
+    //                              in boolean canBubbleArg, 
+    //                              in boolean cancelableArg);
+    HRESULT initEvent([in] BSTR eventTypeArg, [in] BOOL canBubbleArg, [in] BOOL cancelableArg);
+}
+
+[
+    object,
+    oleautomation,
+    uuid(c7cf7d84-d755-40bc-b664-84bc79eff709),
+    pointer_default(unique)
+]
+interface IDOMEventTarget : IUnknown
+{
+    //void               addEventListener(in DOMString type, 
+    //                                    in EventListener listener, 
+    //                                    in boolean useCapture);
+    HRESULT addEventListener([in] BSTR type, [in] IDOMEventListener* listener, [in] BOOL useCapture);
+
+    //void               removeEventListener(in DOMString type, 
+    //                                       in EventListener listener, 
+    //                                       in boolean useCapture);
+    HRESULT removeEventListener([in] BSTR type, [in] IDOMEventListener* listener, [in] BOOL useCapture);
+
+    //boolean            dispatchEvent(in Event event)
+    HRESULT dispatchEvent([in] IDOMEvent* event, [out, retval] BOOL* result);
+}
+
+[
+    object,
+    oleautomation,
+    uuid(55AAF192-68CD-409f-A551-89710DC7240A),
+    pointer_default(unique)
+]
+interface IDOMDocumentEvent : IUnknown
+{
+    //Event              createEvent(in DOMString eventType)
+    //    raises(DOMException);
+    HRESULT createEvent([in] BSTR eventType, [out, retval] IDOMEvent** result);
+}
+
+[
+    object,
+    oleautomation,
+    uuid(76bc4e46-67df-40d3-89b0-a94dcc2ed507),
+    pointer_default(unique)
+]
+interface IDOMKeyboardEvent : IDOMUIEvent
+{
+    // KeyLocationCode
+    const unsigned long       DOMKEYBOARDEVENT_KEY_LOCATION_STANDARD      = 0x00;
+    const unsigned long       DOMKEYBOARDEVENT_KEY_LOCATION_LEFT          = 0x01;
+    const unsigned long       DOMKEYBOARDEVENT_KEY_LOCATION_RIGHT         = 0x02;
+    const unsigned long       DOMKEYBOARDEVENT_KEY_LOCATION_NUMPAD        = 0x03;
+
+    //readonly attribute DOMString        keyIdentifier;
+    HRESULT keyIdentifier([out, retval] BSTR* result);
+
+    //readonly attribute unsigned long    keyLocation;
+    HRESULT keyLocation([out, retval] unsigned long* result);
+
+    //readonly attribute boolean          ctrlKey;
+    HRESULT ctrlKey([out, retval] BOOL* result);
+
+    //readonly attribute boolean          shiftKey;
+    HRESULT shiftKey([out, retval] BOOL* result);
+
+    //readonly attribute boolean          altKey;
+    HRESULT altKey([out, retval] BOOL* result);
+
+    //readonly attribute boolean          metaKey;
+    HRESULT metaKey([out, retval] BOOL* result);
+
+    //readonly attribute boolean          altGraphKey;
+    HRESULT altGraphKey([out, retval] BOOL* result);
+
+    //boolean getModifierState(in DOMString keyIdentifierArg);
+    HRESULT getModifierState([in] BSTR keyIdentifierArg, [out, retval] BOOL* result);
+
+    // FIXME: this does not match the version in the DOM spec.
+    //void initKeyboardEvent(in AtomicString type, 
+    //                       in boolean canBubble, 
+    //                       in boolean cancelable, 
+    //                       in DOMWindow view, 
+    //                       in DOMString keyIdentifier,
+    //                       in unsigned long keyLocation,
+    //                       in boolean ctrlKey,
+    //                       in boolean altKey,
+    //                       in boolean shiftKey,
+    //                       in boolean metaKey,
+    //                       in boolean altGraphKey);
+    HRESULT initKeyboardEvent([in] BSTR type, [in] BOOL canBubble, [in] BOOL cancelable, [in] IDOMWindow* view, [in] BSTR keyIdentifier, [in] unsigned long keyLocation, [in] BOOL ctrlKey, [in] BOOL altKey, [in] BOOL shiftKey, [in] BOOL metaKey, [in] BOOL graphKey);
+
+    // WebKit Extensions
+    //readonly attribute long             keyCode;
+    //HRESULT keyCode([out, retval] long* result);
+
+    //readonly attribute long             charCode;
+    //HRESULT charCode([out, retval] long* result);
+
+    //void initKeyboardEvent(in AtomicString type, 
+    //                       in boolean canBubble, 
+    //                       in boolean cancelable, 
+    //                       in DOMWindow view, 
+    //                       in DOMString keyIdentifier,
+    //                       in unsigned long keyLocation,
+    //                       in boolean ctrlKey,
+    //                       in boolean altKey,
+    //                       in boolean shiftKey,
+    //                       in boolean metaKey);
+}
+
+[
+    object,
+    oleautomation,
+    uuid(bdd97151-5f6a-4ba4-a902-9b008392eb54),
+    pointer_default(unique)
+]
+interface IDOMMouseEvent : IDOMUIEvent
+{
+    //readonly attribute long             screenX;
+    HRESULT screenX([out, retval] long* result);
+
+    //readonly attribute long             screenY;
+    HRESULT screenY([out, retval] long* result);
+
+    //readonly attribute long             clientX;
+    HRESULT clientX([out, retval] long* result);
+
+    //readonly attribute long             clientY;
+    HRESULT clientY([out, retval] long* result);
+
+    //readonly attribute boolean          ctrlKey;
+    HRESULT ctrlKey([out, retval] BOOL* result);
+
+    //readonly attribute boolean          shiftKey;
+    HRESULT shiftKey([out, retval] BOOL* result);
+
+    //readonly attribute boolean          altKey;
+    HRESULT altKey([out, retval] BOOL* result);
+
+    //readonly attribute boolean          metaKey;
+    HRESULT metaKey([out, retval] BOOL* result);
+
+    //readonly attribute unsigned short   button;
+    HRESULT button([out, retval] unsigned short* result);
+
+    //readonly attribute EventTarget      relatedTarget;
+    HRESULT relatedTarget([out, retval] IDOMEventTarget** result);
+
+    //[OldStyleObjC] void initMouseEvent(in AtomicString type, 
+    //                                   in boolean canBubble, 
+    //                                   in boolean cancelable, 
+    //                                   in DOMWindow view, 
+    //                                   in long detail, 
+    //                                   in long screenX, 
+    //                                   in long screenY, 
+    //                                   in long clientX, 
+    //                                   in long clientY, 
+    //                                   in boolean ctrlKey, 
+    //                                   in boolean altKey, 
+    //                                   in boolean shiftKey, 
+    //                                   in boolean metaKey, 
+    //                                   in unsigned short button, 
+    //                                   in EventTarget relatedTarget);
+    HRESULT initMouseEvent([in] BSTR type, [in] BOOL canBubble, [in] BOOL cancelable, [in] IDOMWindow* view, [in] long detail, [in] long screenX, [in] long screenY, [in] long clientX, [in] long clientY, [in] BOOL ctrlKey, [in] BOOL altKey, [in] BOOL shiftKey, [in] BOOL metaKey, [in] unsigned short button, [in] IDOMEventTarget* relatedTarget);
+
+    // extensions
+    //readonly attribute long             offsetX;
+    HRESULT offsetX([out, retval] long* result);
+
+    //readonly attribute long             offsetY;
+    HRESULT offsetY([out, retval] long* result);
+
+    //readonly attribute long             x;
+    HRESULT x([out, retval] long* result);
+
+    //readonly attribute long             y;
+    HRESULT y([out, retval] long* result);
+
+    //readonly attribute Node             fromElement;
+    HRESULT fromElement([out, retval] IDOMNode** result);
+
+    //readonly attribute Node             toElement;
+    HRESULT toElement([out, retval] IDOMNode** result);
+}
+
+[
+    object,
+    oleautomation,
+    uuid(6345d228-ea67-48ee-93c8-ff6e9c6356e9),
+    pointer_default(unique)
+]
+interface IDOMMutationEvent : IDOMEvent
+{
+    // attrChangeType
+    const unsigned short DOMMUTATIONEVENT_MODIFICATION = 1;
+    const unsigned short DOMMUTATIONEVENT_ADDITION     = 2;
+    const unsigned short DOMMUTATIONEVENT_REMOVAL      = 3;
+
+    //readonly attribute Node           relatedNode;
+    HRESULT relatedNode([out, retval] IDOMNode** result);
+
+    //readonly attribute DOMString      prevValue;
+    HRESULT prevValue([out, retval] BSTR* result);
+
+    //readonly attribute DOMString      newValue;
+    HRESULT newValue([out, retval] BSTR* result);
+
+    //readonly attribute DOMString      attrName;
+    HRESULT attrName([out, retval] BSTR* result);
+
+    //readonly attribute unsigned short attrChange;
+    HRESULT attrChange([out, retval] unsigned short* result);
+
+    //[OldStyleObjC] void initMutationEvent(in AtomicString type, 
+    //                                      in boolean canBubble, 
+    //                                      in boolean cancelable, 
+    //                                      in Node relatedNode, 
+    //                                      in DOMString prevValue, 
+    //                                      in DOMString newValue, 
+    //                                      in DOMString attrName, 
+    //                                      in unsigned short attrChange);
+    HRESULT initMutationEvent([in] BSTR type, [in] BOOL canBubble, [in] BOOL cancelable, [in] IDOMNode* relatedNode, [in] BSTR prevValue, [in] BSTR newValue, [in] BSTR attrName, [in] unsigned short attrChange);
+}
+
+[
+    object,
+    oleautomation,
+    uuid(6048369e-e444-401b-950d-c9daef9384d2),
+    pointer_default(unique)
+]
+interface IDOMOverflowEvent : IDOMEvent
+{
+    const unsigned short DOMOVERFLOWEVENT_HORIZONTAL = 0;
+    const unsigned short DOMOVERFLOWEVENT_VERTICAL   = 1;
+    const unsigned short DOMOVERFLOWEVENT_BOTH       = 2;
+    
+    //readonly attribute unsigned short orient;
+    HRESULT orient([out, retval] unsigned short* result);
+
+    //readonly attribute boolean horizontalOverflow;
+    HRESULT horizontalOverflow([out, retval] BOOL* result);
+
+    //readonly attribute boolean verticalOverflow;
+    HRESULT verticalOverflow([out, retval] BOOL* result);
+}
+
+[
+    object,
+    oleautomation,
+    uuid(b928261d-7c9e-4156-af71-6f698bd97788),
+    pointer_default(unique)
+]
+interface IDOMUIEvent : IDOMEvent
+{
+    //readonly attribute DOMWindow            view;
+    HRESULT view([out, retval] IDOMWindow** result);
+
+    //readonly attribute long                 detail;
+    HRESULT detail([out, retval] long* result);
+
+    //[OldStyleObjC] void initUIEvent(in AtomicString type, 
+    //                                in boolean canBubble, 
+    //                                in boolean cancelable, 
+    //                                in DOMWindow view, 
+    //                                in long detail);
+    HRESULT initUIEvent([in] BSTR type, [in] BOOL canBubble, [in] BOOL cancelable, [in] IDOMWindow* view, [in] long detail);
+
+    // extentsions
+    //readonly attribute long                 keyCode;
+    HRESULT keyCode([out, retval] long* result);
+
+    //readonly attribute long                 charCode;
+    HRESULT charCode([out, retval] long* result);
+
+    //readonly attribute long                 layerX;
+    HRESULT layerX([out, retval] long* result);
+
+    //readonly attribute long                 layerY;
+    HRESULT layerY([out, retval] long* result);
+
+    //readonly attribute long                 pageX;
+    HRESULT pageX([out, retval] long* result);
+
+    //readonly attribute long                 pageY;
+    HRESULT pageY([out, retval] long* result);
+
+    //readonly attribute long                 which;
+    HRESULT which([out, retval] long* result);
+}
+
+[
+    object,
+    oleautomation,
+    uuid(5404e6d9-a2bb-4c74-8070-ce9d2599bd00),
+    pointer_default(unique)
+]
+interface IDOMWheelEvent : IDOMUIEvent
+{
+    //readonly attribute long    screenX;
+    HRESULT screenX([out, retval] long* result);
+
+    //readonly attribute long    screenY;
+    HRESULT screenY([out, retval] long* result);
+
+    //readonly attribute long    clientX;
+    HRESULT clientX([out, retval] long* result);
+
+    //readonly attribute long    clientY;
+    HRESULT clientY([out, retval] long* result);
+
+    //readonly attribute boolean ctrlKey;
+    HRESULT ctrlKey([out, retval] BOOL* result);
+
+    //readonly attribute boolean shiftKey;
+    HRESULT shiftKey([out, retval] BOOL* result);
+
+    //readonly attribute boolean altKey;
+    HRESULT altKey([out, retval] BOOL* result);
+
+    //readonly attribute boolean metaKey;
+    HRESULT metaKey([out, retval] BOOL* result);
+
+    //readonly attribute long    wheelDelta;
+    HRESULT wheelDelta([out, retval] long* result);
+
+    //readonly attribute long    wheelDeltaX;
+    HRESULT wheelDeltaX([out, retval] long* result);
+
+    //readonly attribute long    wheelDeltaY;
+    HRESULT wheelDeltaY([out, retval] long* result);
+
+    // WebKit Extensions
+    //readonly attribute long    offsetX;
+    HRESULT offsetX([out, retval] long* result);
+
+    //readonly attribute long    offsetY;
+    HRESULT offsetY([out, retval] long* result);
+
+    //readonly attribute long    x;
+    HRESULT x([out, retval] long* result);
+
+    //readonly attribute long    y;
+    HRESULT y([out, retval] long* result);
+
+    //readonly attribute boolean isHorizontal;
+    HRESULT isHorizontal([out, retval] BOOL* result);
+
+    //void initWheelEvent(in long wheelDeltaX,
+    //                    in long wheelDeltaY, 
+    //                    in DOMWindow view, 
+    //                    in long screenX,
+    //                    in long screenY,
+    //                    in long clientX,
+    //                    in long clientY,
+    //                    in boolean ctrlKey,
+    //                    in boolean altKey,
+    //                    in boolean shiftKey,
+    //                    in boolean metaKey);
+    HRESULT initWheelEvent([in] long wheelDeltaX, [in] long wheelDeltaY, [in] IDOMWindow* view, [in] long screenX, [in] long screenY, [in] long clientX, [in] long clientY, [in] BOOL ctrlKey, [in] BOOL altKey, [in] BOOL shiftKey, [in] BOOL metaKey);
+}