123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- //
- // MutationEvent.h
- //
- // Library: XML
- // Package: DOM
- // Module: DOMEvents
- //
- // Definition of the DOM MutationEvent class.
- //
- // Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
- // and Contributors.
- //
- // SPDX-License-Identifier: BSL-1.0
- //
- #ifndef DOM_MutationEvent_INCLUDED
- #define DOM_MutationEvent_INCLUDED
- #include "Poco/XML/XML.h"
- #include "Poco/DOM/Event.h"
- namespace Poco {
- namespace XML {
- class Node;
- class XML_API MutationEvent: public Event
- /// The MutationEvent interface provides specific contextual
- /// information associated with Mutation events.
- {
- public:
- enum AttrChangeType
- {
- MODIFICATION = 1, /// The Attr was modified in place.
- ADDITION = 2, /// The Attr was just added.
- REMOVAL = 3 /// The Attr was just removed.
- };
- Node* relatedNode() const;
- /// relatedNode 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 relatedNode is the
- /// changed parent. If an event is instead dispatched to a
- /// subtree indicating a node was changed within it, the relatedNode is
- /// the changed node. In the case of the DOMAttrModified
- /// event it indicates the Attr node which was modified, added, or removed.
- const XMLString& prevValue() const;
- /// prevValue indicates the previous value of the Attr node in DOMAttrModified
- /// events, and of the CharacterData node in DOMCharDataModified events.
- const XMLString& newValue() const;
- /// newValue indicates the new value of the Attr node in DOMAttrModified
- /// events, and of the CharacterData node in DOMCharDataModified events.
- const XMLString& attrName() const;
- /// attrName indicates the name of the changed Attr node in a DOMAttrModified event.
- AttrChangeType attrChange() const;
- /// attrChange indicates the type of change which triggered the
- /// DOMAttrModified event. The values can be MODIFICATION,
- /// ADDITION, or REMOVAL.
- void initMutationEvent(const XMLString& type, bool canBubble, bool cancelable, Node* relatedNode,
- const XMLString& prevValue, const XMLString& newValue, const XMLString& attrName, AttrChangeType change);
- /// The initMutationEvent method is used to initialize the value of a
- /// MutationEvent created through the DocumentEvent
- /// interface. This method may only be called before the MutationEvent
- /// has been dispatched via the dispatchEvent method,
- /// though it may be called multiple times during that phase if
- /// necessary. If called multiple times, the final invocation takes
- /// precedence.
- // Event Types
- static const XMLString DOMSubtreeModified;
- static const XMLString DOMNodeInserted;
- static const XMLString DOMNodeRemoved;
- static const XMLString DOMNodeRemovedFromDocument;
- static const XMLString DOMNodeInsertedIntoDocument;
- static const XMLString DOMAttrModified;
- static const XMLString DOMCharacterDataModified;
- protected:
- MutationEvent(Document* pOwnerDocument, const XMLString& type);
- MutationEvent(Document* pOwnerDocument, const XMLString& type, EventTarget* pTarget, bool canBubble, bool cancelable, Node* relatedNode);
- MutationEvent(Document* pOwnerDocument, const XMLString& type, EventTarget* pTarget, bool canBubble, bool cancelable, Node* relatedNode,
- const XMLString& prevValue, const XMLString& newValue, const XMLString& attrName, AttrChangeType change);
- ~MutationEvent();
- private:
- XMLString _prevValue;
- XMLString _newValue;
- XMLString _attrName;
- AttrChangeType _change;
- Node* _pRelatedNode;
- friend class AbstractNode;
- friend class Document;
- };
- //
- // inlines
- //
- inline Node* MutationEvent::relatedNode() const
- {
- return _pRelatedNode;
- }
- inline const XMLString& MutationEvent::prevValue() const
- {
- return _prevValue;
- }
- inline const XMLString& MutationEvent::newValue() const
- {
- return _newValue;
- }
- inline const XMLString& MutationEvent::attrName() const
- {
- return _attrName;
- }
- inline MutationEvent::AttrChangeType MutationEvent::attrChange() const
- {
- return _change;
- }
- } } // namespace Poco::XML
- #endif // DOM_MutationEvent_INCLUDED
|