hackthelobby/libcaca/ruby/caca-event.c

74 lines
2.6 KiB
C

/*
* libcaca Ruby bindings
* Copyright (c) 2007-2010 Pascal Terjan <pterjan@linuxfr.org>
* 2012 Sam Hocevar <sam@hocevar.net>
*
* This library is free software. It comes without any warranty, to
* the extent permitted by applicable law. You can redistribute it
* and/or modify it under the terms of the Do What the Fuck You Want
* to Public License, Version 2, as published by Sam Hocevar. See
* http://www.wtfpl.net/ for more details.
*/
#include <ruby.h>
#include <caca.h>
#include <errno.h>
#include "common.h"
VALUE cEvent;
static VALUE cEventKey;
VALUE cEventKeyPress;
VALUE cEventKeyRelease;
static VALUE cEventMouse;
VALUE cEventMousePress;
VALUE cEventMouseRelease;
VALUE cEventMouseMotion;
VALUE cEventResize;
VALUE cEventQuit;
void Init_caca_event(VALUE mCaca)
{
cEvent = rb_define_class_under(mCaca, "Event", rb_cObject);
rb_define_const(cEvent, "TYPE", INT2FIX(CACA_EVENT_ANY));
cEventKey = rb_define_class_under(cEvent, "Key", cEvent);
rb_define_const(cEventKey, "TYPE",
INT2FIX(CACA_EVENT_KEY_PRESS|
CACA_EVENT_KEY_RELEASE));
cEventKeyPress = rb_define_class_under(cEventKey, "Press", cEventKey);
rb_define_const(cEventKeyPress, "TYPE",
INT2FIX(CACA_EVENT_KEY_PRESS));
cEventKeyRelease = rb_define_class_under(cEventKey, "Release", cEventKey);
rb_define_const(cEventKeyRelease, "TYPE",
INT2FIX(CACA_EVENT_KEY_RELEASE));
cEventMouse = rb_define_class_under(cEvent, "Mouse", cEvent);
rb_define_const(cEventMouse, "TYPE",
INT2FIX(CACA_EVENT_MOUSE_PRESS|
CACA_EVENT_MOUSE_RELEASE|
CACA_EVENT_MOUSE_MOTION));
cEventMousePress = rb_define_class_under(cEventMouse, "Press", cEventMouse);
rb_define_const(cEventMousePress, "TYPE",
INT2FIX(CACA_EVENT_MOUSE_PRESS));
cEventMouseRelease = rb_define_class_under(cEventMouse, "Release", cEventMouse);
rb_define_const(cEventMouseRelease, "TYPE",
INT2FIX(CACA_EVENT_MOUSE_RELEASE));
cEventMouseMotion = rb_define_class_under(cEventMouse, "Motion", cEventMouse);
rb_define_const(cEventMouseMotion, "TYPE",
INT2FIX(CACA_EVENT_MOUSE_MOTION));
cEventResize = rb_define_class_under(cEvent, "Resize", cEvent);
rb_define_const(cEventResize, "TYPE",
INT2FIX(CACA_EVENT_RESIZE));
cEventQuit = rb_define_class_under(cEvent, "Quit", cEvent);
rb_define_const(cEventQuit, "TYPE",
INT2FIX(CACA_EVENT_QUIT));
}