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

  <interface name="MutationEvent" inherits="Event"
    id="Events-MutationEvent" since="DOM Level 2">
    <descr>
    <p>The <code>MutationEvent</code> interface provides specific contextual 
	information associated with Mutation events.
    </p>
    </descr>

	<group id="Events-MutationEvent-attrChangeType" name="attrChangeType">
		<descr><p>An integer indicating in which way the <code>Attr</code> was changed.</p></descr>
		<constant name="MODIFICATION" type="unsigned short" value="1">
		  <descr><p>The <code>Attr</code> was modified in place.</p></descr>
		</constant>
		<constant name="ADDITION" type="unsigned short" value="2">
		  <descr><p>The <code>Attr</code> was just added.</p></descr>
		</constant>
		<constant name="REMOVAL" type="unsigned short" value="3">
		  <descr><p>The <code>Attr</code> was just removed.</p></descr>
		</constant>
	</group>

    <attribute type="Node" name="relatedNode" readonly="yes"
    id="Events-MutationEvent-relatedNode">
     <descr>
     <p>
	 <code>relatedNode</code> is used to identify a secondary node related to a mutation event.
	 For example, if a mutation event is dispatched to a node indicating that its parent
	 has changed, the <code>relatedNode</code> is the changed parent.  If an event is instead
	 dispatched to a subtree indicating a node was changed within it, the <code>relatedNode</code>
	 is the changed node.  In the case of the DOMAttrModified event it indicates the <code>Attr</code>
       node which was modified, added, or removed.
     </p>
     </descr>
    </attribute>

    <attribute type="DOMString" name="prevValue" readonly="yes"
    id="Events-MutationEvent-prevValue">
     <descr>
     <p>
	   <code>prevValue</code> indicates the previous value of the <code>Attr</code> node in
     DOMAttrModified events, and of the <code>CharacterData</code> node in DOMCharDataModified events.
     </p>
     </descr>
    </attribute>

    <attribute type="DOMString" name="newValue" readonly="yes"
    id="Events-MutationEvent-newValue">
     <descr>
     <p>
	   <code>newValue</code> indicates the new value of the <code>Attr</code> node in DOMAttrModified
     events, and of the <code>CharacterData</code> node in DOMCharDataModified events.
     </p>
     </descr>
    </attribute>

    <attribute type="DOMString" name="attrName" readonly="yes"
    id="Events-MutationEvent-attrName">
     <descr>
     <p>
	   <code>attrName</code> indicates the name of the changed <code>Attr</code> node in a
     DOMAttrModified event.
     </p>
     </descr>
    </attribute>

    <attribute type="unsigned short" name="attrChange" readonly="yes"
    id="Events-MutationEvent-attrChange">
     <descr>
     <p>
   <code>attrChange</code> indicates the type of change which triggered the DOMAttrModified event.
   The values can be <code>MODIFICATION</code>, <code>ADDITION</code>, or <code>REMOVAL</code>.
     </p>
     </descr>
    </attribute>

    <method name="initMutationEvent" id="Events-Event-initMutationEvent">
      <descr>
      <p>The <code>initMutationEvent</code> method is used to initialize the value of a <code>MutationEvent</code> created through
      the <code>DocumentEvent</code> interface.  This method may only be called before the <code>MutationEvent</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.</p>
      </descr>
      <parameters>
        <param name="typeArg" type="DOMString" attr="in">
          <descr><p>Specifies the event type.</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>
        <param name="relatedNodeArg" type="Node" attr="in">
          <descr><p>Specifies the <code>Event</code>'s related Node.</p>
          </descr>
        </param>
        <param name="prevValueArg" type="DOMString" attr="in">
          <descr><p>Specifies the <code>Event</code>'s <code>prevValue</code> attribute.  This value may be null.</p>
          </descr>
        </param>
        <param name="newValueArg" type="DOMString" attr="in">
          <descr><p>Specifies the <code>Event</code>'s <code>newValue</code> attribute.  This value may be null.</p>
          </descr>
        </param>
        <param name="attrNameArg" type="DOMString" attr="in">
          <descr><p>Specifies the <code>Event</code>'s <code>attrName</code> attribute.  This value may be null.</p>
          </descr>
        </param>
        <param name="attrChangeArg" type="unsigned short" attr="in">
          <descr><p>Specifies the <code>Event</code>'s <code>attrChange</code> attribute</p>
          </descr>
        </param>
     </parameters>
     <returns type="void">
       <descr><p></p></descr>
     </returns>
     <raises>
      <!-- No exceptions -->
     </raises>
    </method>
  </interface>
