Преглед изворни кода

* Adapt the Ruby bindings to the event API change.

tags/v0.99.beta14
Sam Hocevar sam пре 17 година
родитељ
комит
63ecdbf48d
1 измењених фајлова са 20 додато и 17 уклоњено
  1. +20
    -17
      ruby/caca-display.c

+ 20
- 17
ruby/caca-display.c Прегледај датотеку

@@ -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), UINT2NUM(caca_get_event_key_ch(&ev)),
ULONG2NUM(ev.data.key.utf32), ULONG2NUM(caca_get_event_key_utf32(&ev)),
rb_str_new(ev.data.key.utf8, 8)); 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), UINT2NUM(caca_get_event_key_ch(&ev)),
ULONG2NUM(ev.data.key.utf32), ULONG2NUM(caca_get_event_key_utf32(&ev)),
rb_str_new(ev.data.key.utf8, 8)); 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(caca_get_event_mouse_x(&ev)),
UINT2NUM(ev.data.mouse.y), UINT2NUM(caca_get_event_mouse_y(&ev)),
UINT2NUM(ev.data.mouse.button)); 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(caca_get_event_mouse_x(&ev)),
UINT2NUM(ev.data.mouse.y), UINT2NUM(caca_get_event_mouse_y(&ev)),
UINT2NUM(ev.data.mouse.button)); 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(caca_get_event_mouse_x(&ev)),
UINT2NUM(ev.data.mouse.y), 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(caca_get_event_resize_width(&ev)),
UINT2NUM(ev.data.resize.h)); 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);


||||||
x
 
000:0
Loading…
Откажи
Сачувај