diff options
Diffstat (limited to 'src/events/dispatch.h')
-rw-r--r-- | src/events/dispatch.h | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/src/events/dispatch.h b/src/events/dispatch.h new file mode 100644 index 0000000..632fc98 --- /dev/null +++ b/src/events/dispatch.h @@ -0,0 +1,77 @@ +/* + * This file is part of libdom. + * Licensed under the MIT License, + * http://www.opensource.org/licenses/mit-license.php + * Copyright 2009 Bo Yang <struggleyb.nku@gmail.com> + */ + +#ifndef dom_internal_events_dispatch_h_ +#define dom_internal_events_dispatch_h_ + +#include <dom/core/document.h> +#include <dom/events/event.h> +#include <dom/events/mutation_event.h> + +/* Dispatch a DOMNodeInserted/DOMNodeRemoved event */ +dom_exception __dom_dispatch_node_change_event(dom_document *doc, + dom_event_target *et, dom_event_target *related, + dom_mutation_type change, bool *success); +#define _dom_dispatch_node_change_event(doc, et, related, change, success) \ + __dom_dispatch_node_change_event((dom_document *) (doc), \ + (dom_event_target *) (et), \ + (dom_event_target *) (related), \ + (dom_mutation_type) (change), \ + (bool *) (success)) + +/* Dispatch a DOMNodeInsertedIntoDocument/DOMNodeRemovedFromDocument event */ +dom_exception __dom_dispatch_node_change_document_event(dom_document *doc, + dom_event_target *et, dom_mutation_type change, bool *success); +#define _dom_dispatch_node_change_document_event(doc, et, change, success) \ + __dom_dispatch_node_change_document_event((dom_document *) (doc), \ + (dom_event_target *) (et), \ + (dom_mutation_type) (change), \ + (bool *) (success)) + +/* Dispatch a DOMCharacterDataModified event */ +dom_exception __dom_dispatch_characterdata_modified_event( + dom_document *doc, dom_event_target *et, + dom_string *prev, dom_string *new, bool *success); +#define _dom_dispatch_characterdata_modified_event(doc, et, \ + prev, new, success) \ + __dom_dispatch_characterdata_modified_event((dom_document *) (doc), \ + (dom_event_target *) (et), \ + (dom_string *) (prev), \ + (dom_string *) (new), \ + (bool *) (success)) + +/* Dispatch a DOMAttrModified event */ +dom_exception __dom_dispatch_attr_modified_event(dom_document *doc, + dom_event_target *et, dom_string *prev, + dom_string *new, dom_event_target *related, + dom_string *attr_name, dom_mutation_type change, + bool *success); +#define _dom_dispatch_attr_modified_event(doc, et, prev, new, \ + related, attr_name, change, success) \ + __dom_dispatch_attr_modified_event((dom_document *) (doc), \ + (dom_event_target *) (et), \ + (dom_string *) (prev), \ + (dom_string *) (new), \ + (dom_event_target *) (related), \ + (dom_string *) (attr_name), \ + (dom_mutation_type) (change), \ + (bool *) (success)) + +/* Dispatch a DOMSubtreeModified event */ +dom_exception __dom_dispatch_subtree_modified_event(dom_document *doc, + dom_event_target *et, bool *success); +#define _dom_dispatch_subtree_modified_event(doc, et, success) \ + __dom_dispatch_subtree_modified_event((dom_document *) (doc), \ + (dom_event_target *) (et), \ + (bool *) (success)) + +/* Dispatch a generic event */ +dom_exception _dom_dispatch_generic_event(dom_document *doc, + dom_event_target *et, const uint8_t *name, size_t len, + bool bubble, bool cancelable, bool *success); + +#endif |