File: caca-event.c

package info (click to toggle)
libcaca 0.99.beta20-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 5,264 kB
  • sloc: ansic: 25,091; php: 2,763; python: 2,637; cs: 1,213; cpp: 1,127; java: 916; objc: 836; makefile: 543; perl: 505; sh: 472; asm: 297; ruby: 215; xml: 33
file content (73 lines) | stat: -rw-r--r-- 2,634 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
/*
 *  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));

}