| @@ -122,6 +122,7 @@ static VALUE set_mouse2(VALUE self, VALUE visible) | |||||
| static VALUE get_event(VALUE self, VALUE event_mask, VALUE timeout) | static VALUE get_event(VALUE self, VALUE event_mask, VALUE timeout) | ||||
| { | { | ||||
| char utf8[8]; | |||||
| caca_event_t ev; | caca_event_t ev; | ||||
| VALUE e; | VALUE e; | ||||
| @@ -132,42 +133,44 @@ static VALUE get_event(VALUE self, VALUE event_mask, VALUE timeout) | |||||
| return Qnil; | return Qnil; | ||||
| } | } | ||||
| switch(ev.type) | |||||
| switch(caca_get_event_type(&ev)) | |||||
| { | { | ||||
| case CACA_EVENT_KEY_PRESS: | case CACA_EVENT_KEY_PRESS: | ||||
| caca_get_event_key_utf8(&ev, utf8); | |||||
| e = rb_funcall(cEventKeyPress, rb_intern("new"), 3, | e = rb_funcall(cEventKeyPress, rb_intern("new"), 3, | ||||
| UINT2NUM(ev.data.key.ch), | |||||
| ULONG2NUM(ev.data.key.utf32), | |||||
| rb_str_new(ev.data.key.utf8, 8)); | |||||
| UINT2NUM(caca_get_event_key_ch(&ev)), | |||||
| ULONG2NUM(caca_get_event_key_utf32(&ev)), | |||||
| rb_str_new(utf8, 8)); | |||||
| break; | break; | ||||
| case CACA_EVENT_KEY_RELEASE: | case CACA_EVENT_KEY_RELEASE: | ||||
| caca_get_event_key_utf8(&ev, utf8); | |||||
| e = rb_funcall(cEventKeyRelease, rb_intern("new"), 3, | e = rb_funcall(cEventKeyRelease, rb_intern("new"), 3, | ||||
| UINT2NUM(ev.data.key.ch), | |||||
| ULONG2NUM(ev.data.key.utf32), | |||||
| rb_str_new(ev.data.key.utf8, 8)); | |||||
| UINT2NUM(caca_get_event_key_ch(&ev)), | |||||
| ULONG2NUM(caca_get_event_key_utf32(&ev)), | |||||
| rb_str_new(utf8, 8)); | |||||
| break; | break; | ||||
| case CACA_EVENT_MOUSE_PRESS: | case CACA_EVENT_MOUSE_PRESS: | ||||
| e = rb_funcall(cEventMousePress, rb_intern("new"), 3, | e = rb_funcall(cEventMousePress, rb_intern("new"), 3, | ||||
| UINT2NUM(ev.data.mouse.x), | |||||
| UINT2NUM(ev.data.mouse.y), | |||||
| UINT2NUM(ev.data.mouse.button)); | |||||
| UINT2NUM(caca_get_event_mouse_x(&ev)), | |||||
| UINT2NUM(caca_get_event_mouse_y(&ev)), | |||||
| UINT2NUM(caca_get_event_mouse_button(&ev))); | |||||
| break; | break; | ||||
| case CACA_EVENT_MOUSE_RELEASE: | case CACA_EVENT_MOUSE_RELEASE: | ||||
| e = rb_funcall(cEventMouseRelease, rb_intern("new"), 3, | e = rb_funcall(cEventMouseRelease, rb_intern("new"), 3, | ||||
| UINT2NUM(ev.data.mouse.x), | |||||
| UINT2NUM(ev.data.mouse.y), | |||||
| UINT2NUM(ev.data.mouse.button)); | |||||
| UINT2NUM(caca_get_event_mouse_x(&ev)), | |||||
| UINT2NUM(caca_get_event_mouse_y(&ev)), | |||||
| UINT2NUM(caca_get_event_mouse_button(&ev))); | |||||
| break; | break; | ||||
| case CACA_EVENT_MOUSE_MOTION: | case CACA_EVENT_MOUSE_MOTION: | ||||
| e = rb_funcall(cEventMouseMotion, rb_intern("new"), 3, | e = rb_funcall(cEventMouseMotion, rb_intern("new"), 3, | ||||
| UINT2NUM(ev.data.mouse.x), | |||||
| UINT2NUM(ev.data.mouse.y), | |||||
| UINT2NUM(caca_get_event_mouse_x(&ev)), | |||||
| UINT2NUM(caca_get_event_mouse_y(&ev)), | |||||
| Qnil); | Qnil); | ||||
| break; | break; | ||||
| case CACA_EVENT_RESIZE: | case CACA_EVENT_RESIZE: | ||||
| e = rb_funcall(cEventResize, rb_intern("new"), 2, | e = rb_funcall(cEventResize, rb_intern("new"), 2, | ||||
| UINT2NUM(ev.data.resize.w), | |||||
| UINT2NUM(ev.data.resize.h)); | |||||
| UINT2NUM(caca_get_event_resize_width(&ev)), | |||||
| UINT2NUM(caca_get_event_resize_height(&ev))); | |||||
| break; | break; | ||||
| case CACA_EVENT_QUIT: | case CACA_EVENT_QUIT: | ||||
| e = rb_funcall(cEventQuit, rb_intern("new"), 0); | e = rb_funcall(cEventQuit, rb_intern("new"), 0); | ||||