Home | History | Annotate | Download | only in dom
      1 /*
      2  * Copyright (C) 2006, 2007, 2009 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 module events {
     22 
     23     // Introduced in DOM Level 2:
     24     interface [
     25         CustomToJS,
     26         NoStaticTables,
     27         Polymorphic
     28     ] Event {
     29 
     30         // DOM PhaseType
     31         const unsigned short CAPTURING_PHASE     = 1;
     32         const unsigned short AT_TARGET           = 2;
     33         const unsigned short BUBBLING_PHASE      = 3;
     34 
     35 #if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C
     36         // Reverse-engineered from Netscape
     37         const unsigned short MOUSEDOWN           = 1;
     38         const unsigned short MOUSEUP             = 2;
     39         const unsigned short MOUSEOVER           = 4;
     40         const unsigned short MOUSEOUT            = 8;
     41         const unsigned short MOUSEMOVE           = 16;
     42         const unsigned short MOUSEDRAG           = 32;
     43         const unsigned short CLICK               = 64;
     44         const unsigned short DBLCLICK            = 128;
     45         const unsigned short KEYDOWN             = 256;
     46         const unsigned short KEYUP               = 512;
     47         const unsigned short KEYPRESS            = 1024;
     48         const unsigned short DRAGDROP            = 2048;
     49         const unsigned short FOCUS               = 4096;
     50         const unsigned short BLUR                = 8192;
     51         const unsigned short SELECT              = 16384;
     52         const unsigned short CHANGE              = 32768;
     53 #endif
     54 
     55         readonly attribute DOMString        type;
     56         readonly attribute EventTarget      target;
     57         readonly attribute EventTarget      currentTarget;
     58         readonly attribute unsigned short   eventPhase;
     59         readonly attribute boolean          bubbles;
     60         readonly attribute boolean          cancelable;
     61         readonly attribute DOMTimeStamp     timeStamp;
     62 
     63         void               stopPropagation();
     64         void               preventDefault();
     65         [OldStyleObjC] void initEvent(in DOMString eventTypeArg,
     66                                       in boolean canBubbleArg,
     67                                       in boolean cancelableArg);
     68 
     69         // DOM Level 3 Additions.
     70         readonly attribute boolean defaultPrevented;
     71         void stopImmediatePropagation();
     72 
     73         // IE Extensions
     74         readonly attribute EventTarget      srcElement;
     75                  attribute boolean          returnValue;
     76                  attribute boolean          cancelBubble;
     77 
     78 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
     79         readonly attribute [Custom] Clipboard        clipboardData;
     80 #endif
     81 
     82 #if defined(LANGUAGE_CPP) && LANGUAGE_CPP
     83         // Extra WebCore methods exposed to allow compile-time casting in C++
     84         boolean isMutationEvent();
     85         boolean isMouseEvent();
     86         boolean isUIEvent();
     87 #endif
     88 
     89     };
     90 
     91 }
     92