<?xml version="1.0" encoding="utf-8"?>
<!-- $Id: event.xml 225913 2001-06-01 11:15:37Z dims $ -->
<!-- Event interface -->

  <interface name="Event" id="Events-Event" since="DOM Level 2">
    <descr>
    <p>The <code>Event</code> interface is used to provide contextual information about an event
	to the handler processing the event.  An object which implements the <code>Event</code> interface
	is generally passed as the first parameter to an event handler.  More specific 
	context information is passed to event handlers by deriving additional interfaces from 
	<code>Event</code> which contain information directly relating to the type of event
	they accompany.  These derived interfaces are also implemented by the object passed to the
	event listener.
    </p>
    </descr>

	<group id="Events-Event-eventPhaseType" name="PhaseType">
		<descr><p>An integer indicating which phase of event flow is being processed.</p></descr>
		<constant name="CAPTURING_PHASE" type="unsigned short" value="1">
		  <descr><p>The current event phase is the capturing phase.</p></descr>
		</constant>
		<constant name="AT_TARGET" type="unsigned short" value="2">
		  <descr><p>The event is currently being evaluated at the target <code>EventTarget</code>.</p></descr>
		</constant>
		<constant name="BUBBLING_PHASE" type="unsigned short" value="3">
		  <descr><p>The current event phase is the bubbling phase.</p></descr>
		</constant>
	</group>

    <attribute type="DOMString" name="type" readonly="yes" id="Events-Event-type">
     <descr>
     <p>The name of the event (case-insensitive). The name must be an <termref def="dt-XML-name">XML
	  name</termref>.</p>
     </descr>
    </attribute>

    <attribute type="EventTarget" name="target" readonly="yes" id="Events-Event-target">
     <descr>
     <p>Used to indicate the <code>EventTarget</code> to which the event 
	 was originally dispatched.
     </p>
     </descr>
    </attribute>

    <attribute type="EventTarget" name="currentTarget" readonly="yes" id="Events-Event-currentTarget">
     <descr>
     <p>Used to indicate the <code>EventTarget</code> whose
     <code>EventListeners</code> are currently being processed.  This is particularly
     useful during capturing and bubbling.
     </p>
     </descr>
    </attribute>

    <attribute type="unsigned short" name="eventPhase" readonly="yes" id="Events-Event-eventPhase">
     <descr>
     <p>Used to indicate which phase of event flow is currently 
	 being evaluated.
     </p>
     </descr>
    </attribute>

    <attribute type="boolean" name="bubbles" readonly="yes" id="Events-Event-canBubble">
     <descr>
     <p>Used to indicate whether or not an event is a bubbling event. 
     If the event can bubble the value is true, else the value is false.
     </p>
     </descr>
    </attribute>

    <attribute type="boolean" name="cancelable" readonly="yes" id="Events-Event-canCancel">
     <descr>
     <p>Used to indicate whether or not an event can have its default
     action prevented. If the default action can be prevented the value is true, else the value is false.
     </p>
     </descr>
    </attribute>

    <attribute type="DOMTimeStamp" name="timeStamp" readonly="yes" id="Events-Event-timeStamp">
     <descr>
      <p>
	Used to specify the time (in milliseconds relative
	to the epoch) at which the event was created. Due to the fact that some
	systems may not provide this information the value of
	<code>timeStamp</code> may be not available for all events. When not
	available, a value of 0 will be returned. Examples of epoch time are
	the time of the system start or 0:0:0 UTC 1st January 1970.
     </p>
     </descr>
    </attribute>

    <method name="stopPropagation" id="Events-Event-stopPropagation">
     <descr>
     <p>The <code>stopPropagation</code> method is used prevent further propagation of an event during
     event flow. If this method is called by any <code>EventListener</code> the event will cease
     propagating through the tree.  The event will complete dispatch to all listeners on the current
     <code>EventTarget</code> before event flow stops.  This method may be used during any stage of
     event flow.</p>
     </descr>
     <parameters>
     </parameters>
     <returns type="void">
       <descr><p></p></descr>
     </returns>
     <raises>
      <!-- No exceptions -->
     </raises>
    </method>

    <method name="preventDefault" id="Events-Event-preventDefault">
     <descr>
     <p>If an event is cancelable, the <code>preventDefault</code> method is used
	 to signify that the event is to be canceled, meaning any default action normally
   taken by the implementation as a result of the event will not occur.  If, during any stage of event flow,
	 the <code>preventDefault</code> method is called the event is canceled.
	 Any default action associated with the event will not occur.  Calling this method
	 for a non-cancelable event has no effect.  Once <code>preventDefault</code> has been
   called it will remain in effect throughout the remainder of the event's propagation.  This
   method may be used during any stage of event flow.
     </p>
     </descr>
     <parameters>
     </parameters>
     <returns type="void">
       <descr><p></p></descr>
     </returns>
     <raises>
      <!-- No exceptions -->
     </raises>
    </method>

    <method name="initEvent" id="Events-Event-initEvent">
      <descr>
      <p>The <code>initEvent</code> method is used to initialize the value of an <code>Event</code> created through
      the <code>DocumentEvent</code> interface.  This method may only be called before the <code>Event</code> has
      been dispatched via the <code>dispatchEvent</code> method, though it may be called multiple times during that
      phase if necessary.  If called multiple times the final invocation takes precedence.  If called from a
      subclass of <code>Event</code> interface only the values specified in the <code>initEvent</code> method are
      modified, all other attributes are left unchanged.</p>
      </descr>
      <parameters>
        <param name="eventTypeArg" type="DOMString" attr="in">
	  <descr><p>Specifies the event type.  This type may be any event type currently
	    defined in this specification or a new event type.. The string must
	    be an <termref def="dt-XML-name">XML name</termref>. </p>
          <p>Any new event type must not begin with any upper, lower, or mixed case version 
          of the string "DOM".  This prefix is reserved for future DOM event sets.  It is also
          strongly recommended that third parties adding their own events use their own prefix to avoid
          confusion and lessen the probability of conflicts with other new events.</p>
          </descr>
        </param>
        <param name="canBubbleArg" type="boolean" attr="in">
          <descr><p>Specifies whether or not the event can bubble.</p>
          </descr>
        </param>
        <param name="cancelableArg" type="boolean" attr="in">
          <descr><p>Specifies whether or not the event's default 
          action can be prevented.</p>
          </descr>
        </param>
      </parameters>
      <returns type="void">
        <descr><p></p></descr>
      </returns>
      <raises>
       <!-- No exceptions -->
      </raises>
    </method>

  </interface>
