Home | History | Annotate | Download | only in events
      1 /*
      2  * Copyright (C) 2006, 2007, 2009, 2011 Apple Inc. All rights reserved.
      3  * Copyright (C) 2006 Samuel Weinig <sam.weinig (at) gmail.com>
      4  *
      5  * This library is free software; you can redistribute it and/or
      6  * modify it under the terms of the GNU Library General Public
      7  * License as published by the Free Software Foundation; either
      8  * version 2 of the License, or (at your option) any later version.
      9  *
     10  * This library is distributed in the hope that it will be useful,
     11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
     12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     13  * Library General Public License for more details.
     14  *
     15  * You should have received a copy of the GNU Library General Public License
     16  * along with this library; see the file COPYING.LIB.  If not, write to
     17  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
     18  * Boston, MA 02110-1301, USA.
     19  */
     20 
     21 // Introduced in DOM Level 2:
     22 [
     23     WillBeGarbageCollected,
     24     Custom=Wrap,
     25     EventConstructor,
     26 ] interface Event {
     27 
     28     // DOM PhaseType
     29     const unsigned short NONE                = 0;
     30     const unsigned short CAPTURING_PHASE     = 1;
     31     const unsigned short AT_TARGET           = 2;
     32     const unsigned short BUBBLING_PHASE      = 3;
     33 
     34     // Reverse-engineered from Netscape
     35     const unsigned short MOUSEDOWN           = 1;
     36     const unsigned short MOUSEUP             = 2;
     37     const unsigned short MOUSEOVER           = 4;
     38     const unsigned short MOUSEOUT            = 8;
     39     const unsigned short MOUSEMOVE           = 16;
     40     const unsigned short MOUSEDRAG           = 32;
     41     const unsigned short CLICK               = 64;
     42     const unsigned short DBLCLICK            = 128;
     43     const unsigned short KEYDOWN             = 256;
     44     const unsigned short KEYUP               = 512;
     45     const unsigned short KEYPRESS            = 1024;
     46     const unsigned short DRAGDROP            = 2048;
     47     const unsigned short FOCUS               = 4096;
     48     const unsigned short BLUR                = 8192;
     49     const unsigned short SELECT              = 16384;
     50     const unsigned short CHANGE              = 32768;
     51 
     52     readonly attribute DOMString        type;
     53     readonly attribute EventTarget      target;
     54     readonly attribute EventTarget      currentTarget;
     55     readonly attribute unsigned short   eventPhase;
     56     [InitializedByEventConstructor] readonly attribute boolean bubbles;
     57     [InitializedByEventConstructor] readonly attribute boolean cancelable;
     58     readonly attribute DOMTimeStamp     timeStamp;
     59 
     60     void               stopPropagation();
     61     void               preventDefault();
     62     void initEvent([Default=Undefined] optional DOMString eventTypeArg,
     63                    [Default=Undefined] optional boolean canBubbleArg,
     64                    [Default=Undefined] optional boolean cancelableArg);
     65 
     66     // DOM Level 3 Additions.
     67     readonly attribute boolean defaultPrevented;
     68     void stopImmediatePropagation();
     69 
     70     // IE Extensions
     71     [MeasureAs=EventSrcElement] readonly attribute EventTarget srcElement;
     72     [CallWith=ExecutionContext, ImplementedAs=legacyReturnValue, MeasureAs=EventReturnValue] attribute boolean returnValue;
     73     [MeasureAs=EventCancelBubble] attribute boolean cancelBubble;
     74     [MeasureAs=EventPath] readonly attribute NodeList path;
     75     [Custom=Getter, MeasureAs=EventClipboardData] readonly attribute DataTransfer clipboardData;
     76 };
     77