diff options
Diffstat (limited to 'event/event.c')
-rw-r--r-- | event/event.c | 86 |
1 files changed, 0 insertions, 86 deletions
diff --git a/event/event.c b/event/event.c index 7faac1c..f770612 100644 --- a/event/event.c +++ b/event/event.c @@ -33,92 +33,6 @@ #include "xcb_event.h" #include "../xcb-util-common.h" -void -xcb_event_handlers_init(xcb_connection_t *c, xcb_event_handlers_t *evenths) -{ - memset(evenths, 0, sizeof(xcb_event_handlers_t)); - evenths->c = c; -} - -xcb_connection_t * -xcb_event_get_xcb_connection(xcb_event_handlers_t *evenths) -{ - return evenths->c; -} - -static xcb_event_handler_t * -get_event_handler(xcb_event_handlers_t *evenths, int event) -{ - assert(event < 256); - event &= XCB_EVENT_RESPONSE_TYPE_MASK; - assert(event >= 2); - return &evenths->event[event - 2]; -} - -static xcb_event_handler_t * -get_error_handler(xcb_event_handlers_t *evenths, int error) -{ - assert(error >= 0 && error < 256); - return &evenths->error[error]; -} - -int -xcb_event_handle(xcb_event_handlers_t *evenths, xcb_generic_event_t *event) -{ - xcb_event_handler_t *eventh = 0; - assert(event->response_type != 1); - - if(event->response_type == 0) - eventh = get_error_handler(evenths, ((xcb_generic_error_t *) event)->error_code); - else - eventh = get_event_handler(evenths, event->response_type); - - if(eventh->handler) - return eventh->handler(eventh->data, evenths->c, event); - return 0; -} - -void -xcb_event_wait_for_event_loop(xcb_event_handlers_t *evenths) -{ - xcb_generic_event_t *event; - while((event = xcb_wait_for_event(evenths->c))) - { - xcb_event_handle(evenths, event); - free(event); - } -} - -void -xcb_event_poll_for_event_loop(xcb_event_handlers_t *evenths) -{ - xcb_generic_event_t *event; - while ((event = xcb_poll_for_event(evenths->c))) - { - xcb_event_handle(evenths, event); - free(event); - } -} - -static void -set_handler(xcb_generic_event_handler_t handler, void *data, xcb_event_handler_t *place) -{ - xcb_event_handler_t eventh = { handler, data }; - *place = eventh; -} - -void -xcb_event_set_handler(xcb_event_handlers_t *evenths, int event, xcb_generic_event_handler_t handler, void *data) -{ - set_handler(handler, data, get_event_handler(evenths, event)); -} - -void -xcb_event_set_error_handler(xcb_event_handlers_t *evenths, int error, xcb_generic_error_handler_t handler, void *data) -{ - set_handler((xcb_generic_event_handler_t) handler, data, get_error_handler(evenths, error)); -} - static const char *labelError[] = { "Success", |