2 #include <wayland-server.h>
3 #include "libds/interfaces/pointer.h"
6 ds_pointer_init(struct ds_pointer *pointer,
7 const struct ds_pointer_interface *iface)
9 pointer->iface = iface;
11 wl_signal_init(&pointer->events.motion);
12 wl_signal_init(&pointer->events.motion_absolute);
13 wl_signal_init(&pointer->events.button);
14 wl_signal_init(&pointer->events.frame);
18 ds_pointer_destroy(struct ds_pointer *pointer)
23 if (pointer->iface && pointer->iface->destroy)
24 pointer->iface->destroy(pointer);
30 ds_pointer_add_motion_listener(struct ds_pointer *pointer,
31 struct wl_listener *listener)
33 wl_signal_add(&pointer->events.motion, listener);
37 ds_pointer_add_motion_absolute_listener(struct ds_pointer *pointer,
38 struct wl_listener *listener)
40 wl_signal_add(&pointer->events.motion_absolute, listener);
44 ds_pointer_add_button_listener(struct ds_pointer *pointer,
45 struct wl_listener *listener)
47 wl_signal_add(&pointer->events.button, listener);
51 ds_pointer_add_frame_listener(struct ds_pointer *pointer,
52 struct wl_listener *listener)
54 wl_signal_add(&pointer->events.frame, listener);