summaryrefslogtreecommitdiff
path: root/include/libnsfb_event.h
diff options
context:
space:
mode:
authorVincent Sanders <vince@netsurf-browser.org>2009-04-15 11:33:03 +0000
committerVincent Sanders <vince@netsurf-browser.org>2009-04-15 11:33:03 +0000
commit2b23052622dc6d4effbeee4f079561343347ebf7 (patch)
treeb411dbb345012196dde7f8b00b143c59427f44c5 /include/libnsfb_event.h
parentc554e32f8202e6628422cab831c996615911092d (diff)
downloadlibnsfb-2b23052622dc6d4effbeee4f079561343347ebf7.tar.gz
libnsfb-2b23052622dc6d4effbeee4f079561343347ebf7.tar.bz2
add event interface
svn path=/trunk/libnsfb/; revision=7088
Diffstat (limited to 'include/libnsfb_event.h')
-rw-r--r--include/libnsfb_event.h183
1 files changed, 183 insertions, 0 deletions
diff --git a/include/libnsfb_event.h b/include/libnsfb_event.h
new file mode 100644
index 0000000..179f24b
--- /dev/null
+++ b/include/libnsfb_event.h
@@ -0,0 +1,183 @@
+enum nsfb_event_type_e {
+ NSFB_EVENT_NONE,
+ NSFB_EVENT_CONTROL,
+ NSFB_EVENT_KEY_DOWN,
+ NSFB_EVENT_KEY_UP,
+ NSFB_EVENT_MOVE_RELATIVE,
+ NSFB_EVENT_MOVE_ABSOLUTE,
+};
+
+
+enum nsfb_key_code_e {
+ /* keycodes which map to ascii chars */
+ NSFB_KEY_UNKNOWN = 0,
+ NSFB_KEY_BACKSPACE = 8,
+ NSFB_KEY_TAB = 9,
+ NSFB_KEY_CLEAR = 12,
+ NSFB_KEY_RETURN = 13,
+ NSFB_KEY_PAUSE = 19,
+ NSFB_KEY_ESCAPE = 27,
+ NSFB_KEY_SPACE = 32,
+ NSFB_KEY_EXCLAIM = 33,
+ NSFB_KEY_QUOTEDBL = 34,
+ NSFB_KEY_HASH = 35,
+ NSFB_KEY_DOLLAR = 36,
+ NSFB_KEY_AMPERSAND = 38,
+ NSFB_KEY_QUOTE = 39,
+ NSFB_KEY_LEFTPAREN = 40,
+ NSFB_KEY_RIGHTPAREN = 41,
+ NSFB_KEY_ASTERISK = 42,
+ NSFB_KEY_PLUS = 43,
+ NSFB_KEY_COMMA = 44,
+ NSFB_KEY_MINUS = 45,
+ NSFB_KEY_PERIOD = 46,
+ NSFB_KEY_SLASH = 47,
+ NSFB_KEY_0 = 48,
+ NSFB_KEY_1 = 49,
+ NSFB_KEY_2 = 50,
+ NSFB_KEY_3 = 51,
+ NSFB_KEY_4 = 52,
+ NSFB_KEY_5 = 53,
+ NSFB_KEY_6 = 54,
+ NSFB_KEY_7 = 55,
+ NSFB_KEY_8 = 56,
+ NSFB_KEY_9 = 57,
+ NSFB_KEY_COLON = 58,
+ NSFB_KEY_SEMICOLON = 59,
+ NSFB_KEY_LESS = 60,
+ NSFB_KEY_EQUALS = 61,
+ NSFB_KEY_GREATER = 62,
+ NSFB_KEY_QUESTION = 63,
+ NSFB_KEY_AT = 64,
+ NSFB_KEY_LEFTBRACKET = 91,
+ NSFB_KEY_BACKSLASH = 92,
+ NSFB_KEY_RIGHTBRACKET = 93,
+ NSFB_KEY_CARET = 94,
+ NSFB_KEY_UNDERSCORE = 95,
+ NSFB_KEY_BACKQUOTE = 96,
+ NSFB_KEY_a = 97,
+ NSFB_KEY_b = 98,
+ NSFB_KEY_c = 99,
+ NSFB_KEY_d = 100,
+ NSFB_KEY_e = 101,
+ NSFB_KEY_f = 102,
+ NSFB_KEY_g = 103,
+ NSFB_KEY_h = 104,
+ NSFB_KEY_i = 105,
+ NSFB_KEY_j = 106,
+ NSFB_KEY_k = 107,
+ NSFB_KEY_l = 108,
+ NSFB_KEY_m = 109,
+ NSFB_KEY_n = 110,
+ NSFB_KEY_o = 111,
+ NSFB_KEY_p = 112,
+ NSFB_KEY_q = 113,
+ NSFB_KEY_r = 114,
+ NSFB_KEY_s = 115,
+ NSFB_KEY_t = 116,
+ NSFB_KEY_u = 117,
+ NSFB_KEY_v = 118,
+ NSFB_KEY_w = 119,
+ NSFB_KEY_x = 120,
+ NSFB_KEY_y = 121,
+ NSFB_KEY_z = 122,
+ NSFB_KEY_DELETE = 127,
+
+ NSFB_KEY_KP0 = 256,
+ NSFB_KEY_KP1 = 257,
+ NSFB_KEY_KP2 = 258,
+ NSFB_KEY_KP3 = 259,
+ NSFB_KEY_KP4 = 260,
+ NSFB_KEY_KP5 = 261,
+ NSFB_KEY_KP6 = 262,
+ NSFB_KEY_KP7 = 263,
+ NSFB_KEY_KP8 = 264,
+ NSFB_KEY_KP9 = 265,
+ NSFB_KEY_KP_PERIOD = 266,
+ NSFB_KEY_KP_DIVIDE = 267,
+ NSFB_KEY_KP_MULTIPLY = 268,
+ NSFB_KEY_KP_MINUS = 269,
+ NSFB_KEY_KP_PLUS = 270,
+ NSFB_KEY_KP_ENTER = 271,
+ NSFB_KEY_KP_EQUALS = 272,
+
+ NSFB_KEY_UP = 273,
+ NSFB_KEY_DOWN = 274,
+ NSFB_KEY_RIGHT = 275,
+ NSFB_KEY_LEFT = 276,
+ NSFB_KEY_INSERT = 277,
+ NSFB_KEY_HOME = 278,
+ NSFB_KEY_END = 279,
+ NSFB_KEY_PAGEUP = 280,
+ NSFB_KEY_PAGEDOWN = 281,
+
+ /* Function keys */
+ NSFB_KEY_F1 = 282,
+ NSFB_KEY_F2 = 283,
+ NSFB_KEY_F3 = 284,
+ NSFB_KEY_F4 = 285,
+ NSFB_KEY_F5 = 286,
+ NSFB_KEY_F6 = 287,
+ NSFB_KEY_F7 = 288,
+ NSFB_KEY_F8 = 289,
+ NSFB_KEY_F9 = 290,
+ NSFB_KEY_F10 = 291,
+ NSFB_KEY_F11 = 292,
+ NSFB_KEY_F12 = 293,
+ NSFB_KEY_F13 = 294,
+ NSFB_KEY_F14 = 295,
+ NSFB_KEY_F15 = 296,
+
+ /* Key state modifier keys */
+ NSFB_KEY_NUMLOCK = 300,
+ NSFB_KEY_CAPSLOCK = 301,
+ NSFB_KEY_SCROLLOCK = 302,
+ NSFB_KEY_RSHIFT = 303,
+ NSFB_KEY_LSHIFT = 304,
+ NSFB_KEY_RCTRL = 305,
+ NSFB_KEY_LCTRL = 306,
+ NSFB_KEY_RALT = 307,
+ NSFB_KEY_LALT = 308,
+ NSFB_KEY_RMETA = 309,
+ NSFB_KEY_LMETA = 310,
+ NSFB_KEY_LSUPER = 311,
+ NSFB_KEY_RSUPER = 312,
+ NSFB_KEY_MODE = 313,
+ NSFB_KEY_COMPOSE = 314,
+
+ /* Miscellaneous function keys */
+ NSFB_KEY_HELP = 315,
+ NSFB_KEY_PRINT = 316,
+ NSFB_KEY_SYSREQ = 317,
+ NSFB_KEY_BREAK = 318,
+ NSFB_KEY_MENU = 319,
+ NSFB_KEY_POWER = 320,
+ NSFB_KEY_EURO = 321,
+ NSFB_KEY_UNDO = 322,
+
+ /* mouse keys */
+ NSFB_KEY_MOUSE_1 = 401,
+ NSFB_KEY_MOUSE_2 = 402,
+ NSFB_KEY_MOUSE_3 = 403,
+ NSFB_KEY_MOUSE_4 = 404,
+ NSFB_KEY_MOUSE_5 = 405,
+
+};
+
+enum nsfb_control_e {
+ NSFB_CONTROL_NONE,
+ NSFB_CONTROL_QUIT,
+};
+
+struct nsfb_event_s {
+ enum nsfb_event_type_e type;
+ union {
+ enum nsfb_key_code_e keycode;
+ enum nsfb_control_e controlcode;
+ struct {
+ int x;
+ int y;
+ int z;
+ } vector;
+ } value;
+};