diff options
Diffstat (limited to 'src/events.h')
| -rw-r--r-- | src/events.h | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/events.h b/src/events.h index 3bef775..c2820c5 100644 --- a/src/events.h +++ b/src/events.h @@ -14,15 +14,24 @@ struct event_s { struct window_s *window; }; +#define WAYC_EVENT_INIT(kind, window) {kind, window} +#define WAYC_EVENT_CLOSE(window) WAYC_EVENT_INIT(EVENT_KIND_CLOSE, window) + +struct eventloop_s; + +typedef void (*event_handler_t)(struct eventloop_s *loop, + struct event_s *event); + struct eventloop_s { + window_id_t winid; struct wlstate_s state; struct vec_s<struct event_s> events; - window_id_t winid; struct hashmap_s<window_id_t, struct window_s *> windows; + event_handler_t handler; bool running; }; -bool wayc_eventloop_init(struct eventloop_s *loop); +bool wayc_eventloop_init(struct eventloop_s *loop, event_handler_t handler); void wayc_eventloop_deinit(struct eventloop_s *loop); window_id_t wayc_eventloop_register(struct eventloop_s *loop, struct window_s *window); |
