keyrouter: Fix wrong return value
[platform/core/uifw/libds-tizen.git] / src / libds / pointer.c
1 #include <stdlib.h>
2 #include <wayland-server.h>
3 #include "libds/interfaces/pointer.h"
4
5 void
6 ds_pointer_init(struct ds_pointer *pointer,
7         const struct ds_pointer_interface *iface)
8 {
9     pointer->iface = iface;
10
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);
15 }
16
17 void
18 ds_pointer_destroy(struct ds_pointer *pointer)
19 {
20     if (!pointer)
21         return;
22
23     if (pointer->iface && pointer->iface->destroy)
24         pointer->iface->destroy(pointer);
25     else
26         free(pointer);
27 }
28
29 WL_EXPORT void
30 ds_pointer_add_motion_listener(struct ds_pointer *pointer,
31         struct wl_listener *listener)
32 {
33     wl_signal_add(&pointer->events.motion, listener);
34 }
35
36 WL_EXPORT void
37 ds_pointer_add_motion_absolute_listener(struct ds_pointer *pointer,
38         struct wl_listener *listener)
39 {
40     wl_signal_add(&pointer->events.motion_absolute, listener);
41 }
42
43 WL_EXPORT void
44 ds_pointer_add_button_listener(struct ds_pointer *pointer,
45         struct wl_listener *listener)
46 {
47     wl_signal_add(&pointer->events.button, listener);
48 }
49
50 WL_EXPORT void
51 ds_pointer_add_frame_listener(struct ds_pointer *pointer,
52         struct wl_listener *listener)
53 {
54     wl_signal_add(&pointer->events.frame, listener);
55 }