libdom
Loading...
Searching...
No Matches
event_target.h
Go to the documentation of this file.
1/*
2 * This file is part of libdom.
3 * Licensed under the MIT License,
4 * http://www.opensource.org/licenses/mit-license.php
5 * Copyright 2009 Bo Yang <struggleyb.nku@gmail.com>
6 */
7
8#ifndef dom_events_event_target_h_
9#define dom_events_event_target_h_
10
11#include <stdbool.h>
12#include <dom/core/exceptions.h>
13#include <dom/core/string.h>
14
16struct dom_event;
17
18/* Event target is a mixin interface, thus has no concrete implementation.
19 * Subclasses must provide implementations of the event target methods. */
23
27 struct dom_event_listener *listener,
28 bool capture);
31 struct dom_event_listener *listener,
32 bool capture);
35 struct dom_event *evt, bool *success);
38 dom_string *namespace, dom_string *type,
39 struct dom_event_listener *listener,
40 bool capture);
43 dom_string *namespace, dom_string *type,
44 struct dom_event_listener *listener,
45 bool capture);
47
49 dom_event_target *et, dom_string *type,
50 struct dom_event_listener *listener, bool capture)
51{
53 et, type, listener, capture);
54}
55#define dom_event_target_add_event_listener(et, t, l, c) \
56 dom_event_target_add_event_listener((dom_event_target *) (et),\
57 (dom_string *) (t), (struct dom_event_listener *) (l), \
58 (bool) (c))
59
61 dom_event_target *et, dom_string *type,
62 struct dom_event_listener *listener, bool capture)
63{
64 return ((dom_event_target_vtable *) et->vtable)->remove_event_listener(
65 et, type, listener, capture);
66}
67#define dom_event_target_remove_event_listener(et, t, l, c) \
68 dom_event_target_remove_event_listener(\
69 (dom_event_target *) (et), (dom_string *) (t),\
70 (struct dom_event_listener *) (l), (bool) (c))
71
73 dom_event_target *et, struct dom_event *evt, bool *success)
74{
75 return ((dom_event_target_vtable *) et->vtable)->dispatch_event(
76 et, evt, success);
77}
78#define dom_event_target_dispatch_event(et, e, s) \
79 dom_event_target_dispatch_event((dom_event_target *) (et),\
80 (struct dom_event *) (e), (bool *) (s))
81
84 dom_string *namespace, dom_string *type,
85 struct dom_event_listener *listener, bool capture)
86{
87 return ((dom_event_target_vtable *) et->vtable)->add_event_listener_ns(
88 et, namespace, type, listener, capture);
89}
90#define dom_event_target_add_event_listener_ns(et, n, t, l, c) \
91 dom_event_target_add_event_listener_ns(\
92 (dom_event_target *) (et), (dom_string *) (n),\
93 (dom_string *) (t), (struct dom_event_listener *) (l),\
94 (bool) (c))
95
98 dom_string *namespace, dom_string *type,
99 struct dom_event_listener *listener, bool capture)
100{
101 return ((dom_event_target_vtable *) et->vtable)->remove_event_listener_ns(
102 et, namespace, type, listener, capture);
103}
104#define dom_event_target_remove_event_listener_ns(et, n, t, l, c) \
105 dom_event_target_remove_event_listener_ns(\
106 (dom_event_target *) (et), (dom_string *) (n),\
107 (dom_string *) (t), (struct dom_event_listener *) (l),\
108 (bool) (c))
109
110#endif
111
dom_exception
Definition exceptions.h:24
#define dom_event_target_remove_event_listener(et, t, l, c)
Definition event_target.h:67
#define dom_event_target_dispatch_event(et, e, s)
Definition event_target.h:78
#define dom_event_target_add_event_listener(et, t, l, c)
Definition event_target.h:55
#define dom_event_target_remove_event_listener_ns(et, n, t, l, c)
Definition event_target.h:104
struct dom_event_target_vtable dom_event_target_vtable
#define dom_event_target_add_event_listener_ns(et, n, t, l, c)
Definition event_target.h:90
struct dom_event_target dom_event_target
Definition event_listener.h:18
Definition event_target.h:24
dom_exception(* remove_event_listener_ns)(dom_event_target *et, dom_string *namespace, dom_string *type, struct dom_event_listener *listener, bool capture)
Definition event_target.h:41
dom_exception(* remove_event_listener)(dom_event_target *et, dom_string *type, struct dom_event_listener *listener, bool capture)
Definition event_target.h:29
dom_exception(* dispatch_event)(dom_event_target *et, struct dom_event *evt, bool *success)
Definition event_target.h:33
dom_exception(* add_event_listener_ns)(dom_event_target *et, dom_string *namespace, dom_string *type, struct dom_event_listener *listener, bool capture)
Definition event_target.h:36
dom_exception(* add_event_listener)(dom_event_target *et, dom_string *type, struct dom_event_listener *listener, bool capture)
Definition event_target.h:25
Definition event_target.h:20
void * vtable
Definition event_target.h:21
Definition event.h:27
Definition string.h:19