183 lines
3.6 KiB
Java
183 lines
3.6 KiB
Java
/**
|
|
* libcaca Java bindings for libcaca
|
|
* Copyright (c) 2009 Adrien Grand <jpountz@dinauz.org>
|
|
*
|
|
* 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.
|
|
*/
|
|
|
|
package org.zoy.caca;
|
|
|
|
public class Event extends NativeObject {
|
|
|
|
static {
|
|
Caca.load();
|
|
}
|
|
|
|
public static enum Type {
|
|
NONE(0x0000),
|
|
KEY_PRESS(0x0001),
|
|
KEY_RELEASE(0x0002),
|
|
MOUSE_PRESS(0x0004),
|
|
MOUSE_RELEASE(0x0008),
|
|
MOUSE_MOTION(0x0010),
|
|
RESIZE(0x0020),
|
|
QUIT(0x0040),
|
|
ANY(0xffff);
|
|
|
|
protected final int code;
|
|
private Type(int code) {
|
|
this.code = code;
|
|
}
|
|
public static Type forCode(int code) {
|
|
Type[] types = Type.values();
|
|
for (Type type : types) {
|
|
if (type.code == code) {
|
|
return type;
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public static enum Key {
|
|
CTRL_A(0x01),
|
|
CTRL_B(0x02),
|
|
CTRL_C(0x03),
|
|
CTRL_D(0x04),
|
|
CTRL_E(0x05),
|
|
CTRL_F(0x06),
|
|
CTRL_G(0x07),
|
|
BACKSPACE(0x08),
|
|
TAB(0x09),
|
|
CTRL_J(0x0a),
|
|
CTRL_K(0x0b),
|
|
CTRL_L(0x0c),
|
|
RETURN(0x0d),
|
|
CTRL_N(0x0e),
|
|
CTRL_O(0x0f),
|
|
CTRL_P(0x10),
|
|
CTRL_Q(0x11),
|
|
CTRL_R(0x12),
|
|
PAUSE(0x13),
|
|
CTRL_T(0x14),
|
|
CTRL_U(0x15),
|
|
CTRL_V(0x16),
|
|
CTRL_W(0x17),
|
|
CTRL_X(0x18),
|
|
CTRL_Y(0x19),
|
|
CTRL_Z(0x20),
|
|
|
|
UP(0x111),
|
|
DOWN(0x112),
|
|
LEFT(0x113),
|
|
RIGHT(0x114),
|
|
|
|
INSERT(0x115),
|
|
HOME(0x116),
|
|
END(0x117),
|
|
PAGE_HOME(0x118),
|
|
PAGE_DOWN(0x119),
|
|
|
|
F1(0x11a),
|
|
F2(0x11b),
|
|
F3(0x11c),
|
|
F4(0x11d),
|
|
F5(0x11e),
|
|
F6(0x11f),
|
|
F7(0x120),
|
|
F8(0x121),
|
|
F9(0x122),
|
|
F10(0x123),
|
|
F11(0x124),
|
|
F12(0x125),
|
|
F13(0x126),
|
|
F14(0x127),
|
|
F15(0x128);
|
|
|
|
protected final int code;
|
|
private Key(int code) {
|
|
this.code = code;
|
|
}
|
|
public static Key forCode(int code) {
|
|
Key[] keys = Key.values();
|
|
for (Key key : keys) {
|
|
if (key.code == code) {
|
|
return key;
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
}
|
|
|
|
protected Event(long ptr) {
|
|
this.ptr = ptr;
|
|
}
|
|
|
|
private static native int getEventType(long eventPtr);
|
|
|
|
public Type getType() {
|
|
return Type.forCode(getEventType(ptr));
|
|
}
|
|
|
|
private static native int getEventKeyCh(long eventPtr);
|
|
|
|
public int getKeyCh() {
|
|
return getEventKeyCh(ptr);
|
|
}
|
|
|
|
private static native int getEventKeyUtf32(long eventPtr);
|
|
|
|
public int getKeyUtf32() {
|
|
return getEventKeyUtf32(ptr);
|
|
}
|
|
|
|
private static native String getEventKeyUtf8(long eventPtr);
|
|
|
|
public String getKeyUtf8() {
|
|
return getEventKeyUtf8(ptr);
|
|
}
|
|
|
|
private static native int getEventMouseButton(long eventPtr);
|
|
|
|
public int getMouseButton() {
|
|
return getEventMouseButton(ptr);
|
|
}
|
|
|
|
private static native int getEventMouseX(long eventPtr);
|
|
|
|
public int getMouseX() {
|
|
return getEventMouseX(ptr);
|
|
}
|
|
|
|
private static native int getEventMouseY(long eventPtr);
|
|
|
|
public int getMouseY() {
|
|
return getEventMouseY(ptr);
|
|
}
|
|
|
|
private static native int getEventResizeWidth(long eventPtr);
|
|
|
|
public int getResizeWidth() {
|
|
return getEventResizeWidth(ptr);
|
|
}
|
|
|
|
private static native int getEventResizeHeight(long eventPtr);
|
|
|
|
public int getResizeHeight() {
|
|
return getEventResizeHeight(ptr);
|
|
}
|
|
|
|
private static native void freeEvent(long eventPtr);
|
|
|
|
@Override
|
|
public void finalize() throws Throwable {
|
|
freeEvent(ptr);
|
|
super.finalize();
|
|
}
|
|
|
|
}
|