1/* 2 * Copyright (C) 2006, 2007, 2009 Apple Inc. All rights reserved. 3 * Copyright (C) 2006 Samuel Weinig <sam.weinig@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 21module 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