Class Poco::XML::EventTarget
Author: Applied Informatics Software Engineering GmbH and Contributors
Date: 2009-11-24

# Poco::XML

# class EventTarget

Library: XML
Package: DOM
Header: Poco/DOM/EventTarget.h

## Description

The EventTarget interface is implemented by all Nodes in an implementation which supports the DOM Event Model. Therefore, this interface can be obtained by using binding-specific casting methods on an instance of the Node interface. The interface allows registration and removal of EventListeners on an EventTarget and dispatch of events to that EventTarget.

## Inheritance

Direct Base Classes: DOMObject

All Base Classes: DOMObject

Known Derived Classes: AbstractContainerNode, Attr, AbstractNode, CDATASection, Comment, CharacterData, Document, DocumentType, DocumentFragment, Element, Entity, EntityReference, Node, ProcessingInstruction, Notation, Text

## Member Summary

Member Functions: addEventListener, dispatchEvent, removeEventListener

Inherited Functions: autoRelease, duplicate, release

## Destructor

### ~EventTarget

virtual ~EventTarget();

## Member Functions

### addEventListener

virtual void addEventListener(
const XMLString & type,
EventListener * listener,
bool useCapture
) = 0;

This method allows the registration of event listeners on the event target. If an EventListener is added to an EventTarget while it is processing an event, it will not be triggered by the current actions but may be triggered during a later stage of event flow, such as the bubbling phase. If multiple identical EventListeners are registered on the same EventTarget with the same parameters the duplicate instances are discarded. They do not cause the EventListener to be called twice and since they are discarded they do not need to be removed with the removeEventListener method.

### dispatchEvent

virtual bool dispatchEvent(
Event * evt
) = 0;

This method allows the dispatch of events into the implementations event model. Events dispatched in this manner will have the same capturing and bubbling behavior as events dispatched directly by the implementation. The target of the event is the EventTarget on which dispatchEvent is called.

### removeEventListener

virtual void removeEventListener(
const XMLString & type,
EventListener * listener,
bool useCapture
) = 0;

This method allows the removal of event listeners from the event target. If an EventListener is removed from an EventTarget while it is processing an event, it will not be triggered by the current actions. EventListeners can never be invoked after being removed. Calling removeEventListener with arguments which do not identify any currently registered EventListener on the EventTarget has no effect.