summaryrefslogtreecommitdiff
path: root/src/events/dispatch.h
blob: 56f6930a26c2b94e61037a1ee220a3afc433a3c5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
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, dom_string *event_name,
		bool bubble, bool cancelable, bool *success);

#endif