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 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167
|
/*
$Id: key.h,v 1.11 2001/10/18 09:23:04 sphair Exp $
------------------------------------------------------------------------
ClanLib, the platform independent game SDK.
This library is distributed under the GNU LIBRARY GENERAL PUBLIC LICENSE
version 2. See COPYING for details.
For a total list of contributers see CREDITS.
See http://www.clanlib.org
------------------------------------------------------------------------
*/
//! clanDisplay="Input"
//! header=display.h
#ifndef header_key
#define header_key
//: Key buttons available on a keyboard.
enum
{
CL_NO_KEY,
CL_KEY_A, CL_KEY_B, CL_KEY_C, CL_KEY_D, CL_KEY_E, CL_KEY_F, CL_KEY_G,
CL_KEY_H, CL_KEY_I, CL_KEY_J, CL_KEY_K, CL_KEY_L, CL_KEY_M, CL_KEY_N,
CL_KEY_O, CL_KEY_P, CL_KEY_Q, CL_KEY_R, CL_KEY_S, CL_KEY_T, CL_KEY_U,
CL_KEY_V, CL_KEY_W, CL_KEY_X, CL_KEY_Y, CL_KEY_Z, CL_KEY_0, CL_KEY_1,
CL_KEY_2, CL_KEY_3, CL_KEY_4, CL_KEY_5, CL_KEY_6, CL_KEY_7, CL_KEY_8,
CL_KEY_9,
CL_KEY_F1, CL_KEY_F2, CL_KEY_F3, CL_KEY_F4, CL_KEY_F5, CL_KEY_F6,
CL_KEY_F7, CL_KEY_F8, CL_KEY_F9, CL_KEY_F10, CL_KEY_F11, CL_KEY_F12,
CL_KEY_ESCAPE, CL_KEY_LEFT, CL_KEY_RIGHT, CL_KEY_UP, CL_KEY_DOWN,
CL_KEY_LCTRL, CL_KEY_RCTRL, CL_KEY_LSHIFT, CL_KEY_RSHIFT, CL_KEY_ALT,
CL_KEY_ALTGR, CL_KEY_TAB, CL_KEY_ENTER, CL_KEY_SPACE, CL_KEY_BACKSPACE,
CL_KEY_INSERT, CL_KEY_DELETE, CL_KEY_HOME, CL_KEY_END, CL_KEY_PAGEUP,
CL_KEY_PAGEDOWN, CL_KEY_CAPSLOCK, CL_KEY_NUMLOCK, CL_KEY_SCRLOCK,
CL_KEY_PRINT, CL_KEY_PAUSE, CL_KEY_KP_DIV, CL_KEY_KP_MULT,
CL_KEY_KP_MINUS, CL_KEY_KP_PLUS, CL_KEY_KP_ENTER,
CL_KEY_KP_DECIMAL,
CL_KEY_KP_0, CL_KEY_KP_1, CL_KEY_KP_2, CL_KEY_KP_3, CL_KEY_KP_4,
CL_KEY_KP_5, CL_KEY_KP_6, CL_KEY_KP_7, CL_KEY_KP_8, CL_KEY_KP_9,
CL_KEY_NONE_OF_THE_ABOVE,
CL_MOUSE_LEFTBUTTON,
CL_MOUSE_MIDDLEBUTTON,
CL_MOUSE_RIGHTBUTTON,
CL_MOUSE_THUMBBUTTON,
CL_MOUSE_WHEELUP,
CL_MOUSE_WHEELDOWN,
CL_MOUSE_WHEELBUTTON,
CL_NUM_KEYS
};
//: Structure descripting a key event.
//-
//- CL_KEY_BACKSPACE backspace
//- CL_KEY_TAB tab
//- CL_KEY_ENTER return
//- CL_KEY_PAUSE pause
//- CL_KEY_ESCAPE escape
//- CL_KEY_SPACE space
//- CL_KEY_0 0
//- ...
//- CL_KEY_9 9
//- CL_KEY_A a
//- ...
//- CL_KEY_Z z
//- CL_KEY_KP_0 keypad 0
//- ...
//- CL_KEY_KP_9 keypad 9
//- CL_KEY_KP_DEV keypad divide
//- CL_KEY_KP_MULT keypad multiply
//- CL_KEY_KP_MINUS keypad minus
//- CL_KEY_KP_PLUS keypad plus
//- CL_KEY_KP_DECIMAL keypad decimal point
//- CL_KEY_KP_ENTER keypad enter
//- CL_KEY_UP up arrow
//- CL_KEY_DOWN down arrow
//- CL_KEY_RIGHT right arrow
//- CL_KEY_LEFT left arrow
//- CL_KEY_DELETE delete
//- CL_KEY_INSERT insert
//- CL_KEY_HOME home
//- CL_KEY_END end
//- CL_KEY_PAGEUP page up
//- CL_KEY_PAGEDOWN page down
//- CL_KEY_F1 F1
//- ...
//- CL_KEY_F12 F12
//- CL_KEY_NUMLOCK numlock
//- CL_KEY_CAPSLOCK capslock
//- CL_KEY_SCRLOCK scrollock
//- CL_KEY_RSHIFT right shift
//- CL_KEY_LSHIFT left shift
//- CL_KEY_RCTRL right ctrl
//- CL_KEY_LCTRL left ctrl
//- CL_KEY_ALTGR right alt / alt gr
//- CL_KEY_ALT left alt / alt
//- CL_KEY_PRINT print-screen
//-
//- CL_MOUSE_LEFTBUTTON mouse left button
//- CL_MOUSE_MIDDLEBUTTON mouse middle button
//- CL_MOUSE_RIGHTBUTTON mouse right button
//- CL_MOUSE_THUMBBUTTON mouse thumb button
//- CL_MOUSE_WHEELUP mouse wheel up
//- CL_MOUSE_WHEELDOWN mouse wheel down
//- CL_MOUSE_WHEELBUTTON mouse wheel click
class CL_Key
{
public:
//! Enums:
enum State
{
NoKey,
Pressed,
Released
};
public:
//! Variables:
//: Key ID.
int id;
//: Ascii value or -1 if not available.
int ascii;
//: <p>Key state. Was it pressed or released. NoKey is used when there were
//: no key available in the input buffer.</p>
State state;
//: x-coordinate position if a pointing device was the source. -1 if none.
float x;
//: y-coordinate position if a pointing device was the source. -1 if none.
float y;
//! Construction:
//: Key Constructor
CL_Key()
{
id = CL_NO_KEY;
state = NoKey;
ascii = -1;
x = -1;
y = -1;
}
//: Key Constructor
CL_Key(int l_id, State l_state = NoKey, int l_ascii = -1, float l_x = -1, float l_y = -1)
{
id = l_id;
state = l_state;
ascii = l_ascii;
x = l_x;
y = l_y;
}
};
#endif
|