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