1 #include <stdlib.h>
2 #include <stdio.h>
3 #include <locale.h>
4 #define HAVE_VARMACRO 1
5 #include <mba/msgno.h>
6 #include <domc.h>
7 
8 void
event_fn(DOM_EventListener * listener,DOM_Event * evt)9 event_fn(DOM_EventListener *listener, DOM_Event *evt)
10 {
11 	fprintf(stderr, "type=%s,target=%s,currentTarget=%s,eventPhase=%d,bubbles=%d\n", evt->type, evt->target->nodeName, evt->currentTarget->nodeName, evt->eventPhase, evt->bubbles);
12 	listener = NULL;
13 }
14 
15 int
main(int argc,char * argv[])16 main(int argc, char *argv[])
17 {
18 	DOM_Document *doc;
19 	DOM_Element *root;
20 	DOM_Event *evt;
21 
22 	if (argc < 2) {
23 		MSG("Must provide XML filename");
24 		return EXIT_FAILURE;
25 	}
26 
27 	if (!setlocale(LC_CTYPE, "")) {
28 			fprintf(stderr, "Can't set the specified locale! "
29 				"Check LANG, LC_CTYPE, LC_ALL.\n");
30 		return EXIT_FAILURE;
31 	}
32 
33 	doc = DOM_Implementation_createDocument(NULL, NULL, NULL);
34 	if (DOM_DocumentLS_load(doc, argv[1]) == -1) {
35 		if (DOM_Exception) {
36 			MSG("Event test failed");
37 		}
38 		return EXIT_FAILURE;
39 	}
40 
41 	root = doc->u.Document.documentElement;
42 	DOM_EventTarget_addEventListener(root, "Events", &event_fn, event_fn, 1);
43 
44 	MSG("target[%s]", root->nodeName);
45 
46 	evt = DOM_DocumentEvent_createEvent(doc, "Events");
47 	DOM_Event_initEvent(evt, "Events", 1, 1);
48 	DOM_EventTarget_dispatchEvent(root->firstChild, evt);
49 
50 	DOM_DocumentEvent_destroyEvent(doc, evt);
51 	DOM_Document_destroyNode(doc, doc);
52 
53 	return EXIT_SUCCESS;
54 }
55