00001 /*
00002 $Id: key.h,v 1.1 2001/03/06 15:09:11 mbn Exp $
00003
00004 ------------------------------------------------------------------------
00005 ClanLib, the platform independent game SDK.
00006
00007 This library is distributed under the GNU LIBRARY GENERAL PUBLIC LICENSE
00008 version 2. See COPYING for details.
00009
00010 For a total list of contributers see CREDITS.
00011
00012 ------------------------------------------------------------------------
00013 */
00014
00016
00017 #ifndef header_key
00018 #define header_key
00019
00020 enum
00021 {
00022 CL_NO_KEY,
00023
00024 CL_KEY_A, CL_KEY_B, CL_KEY_C, CL_KEY_D, CL_KEY_E, CL_KEY_F, CL_KEY_G,
00025 CL_KEY_H, CL_KEY_I, CL_KEY_J, CL_KEY_K, CL_KEY_L, CL_KEY_M, CL_KEY_N,
00026 CL_KEY_O, CL_KEY_P, CL_KEY_Q, CL_KEY_R, CL_KEY_S, CL_KEY_T, CL_KEY_U,
00027 CL_KEY_V, CL_KEY_W, CL_KEY_X, CL_KEY_Y, CL_KEY_Z, CL_KEY_0, CL_KEY_1,
00028 CL_KEY_2, CL_KEY_3, CL_KEY_4, CL_KEY_5, CL_KEY_6, CL_KEY_7, CL_KEY_8,
00029 CL_KEY_9,
00030
00031 CL_KEY_F1, CL_KEY_F2, CL_KEY_F3, CL_KEY_F4, CL_KEY_F5, CL_KEY_F6,
00032 CL_KEY_F7, CL_KEY_F8, CL_KEY_F9, CL_KEY_F10, CL_KEY_F11, CL_KEY_F12,
00033
00034 CL_KEY_ESCAPE, CL_KEY_LEFT, CL_KEY_RIGHT, CL_KEY_UP, CL_KEY_DOWN,
00035 CL_KEY_LCTRL, CL_KEY_RCTRL, CL_KEY_LSHIFT, CL_KEY_RSHIFT, CL_KEY_ALT,
00036 CL_KEY_ALTGR, CL_KEY_TAB, CL_KEY_ENTER, CL_KEY_SPACE, CL_KEY_BACKSPACE,
00037 CL_KEY_INSERT, CL_KEY_DELETE, CL_KEY_HOME, CL_KEY_END, CL_KEY_PAGEUP,
00038 CL_KEY_PAGEDOWN, CL_KEY_CAPSLOCK, CL_KEY_NUMLOCK, CL_KEY_SCRLOCK,
00039 CL_KEY_PRINT, CL_KEY_PAUSE, CL_KEY_KP_DIV, CL_KEY_KP_MULT,
00040 CL_KEY_KP_MINUS, CL_KEY_KP_PLUS, CL_KEY_KP_ENTER,
00041
00042 CL_KEY_NONE_OF_THE_ABOVE,
00043
00044 CL_NUM_KEYS,
00045
00046 CL_MOUSE_LEFTBUTTON,
00047 CL_MOUSE_MIDDLEBUTTON,
00048 CL_MOUSE_RIGHTBUTTON,
00049 CL_MOUSE_THUMBBUTTON,
00050 CL_MOUSE_WHEELUP,
00051 CL_MOUSE_WHEELDOWN,
00052 CL_MOUSE_WHEELBUTTON
00053 };
00054 // Key buttons available on a keyboard.
00055
00056 class CL_Key
00057 //: Structure descripting a key event.
00058 //
00059 // <pre>
00060 // CL_KEY_BACKSPACE backspace
00061 // CL_KEY_TAB tab
00062 // CL_KEY_ENTER return
00063 // CL_KEY_PAUSE pause
00064 // CL_KEY_ESCAPE escape
00065 // CL_KEY_SPACE space
00066 // CL_KEY_0 0
00067 // ...
00068 // CL_KEY_9 9
00069 // CL_KEY_A a
00070 // ...
00071 // CL_KEY_Z z
00072 // CL_KEY_DELETE delete
00073 // CL_KEY_KP_DEV keypad divide
00074 // CL_KEY_KP_MULT keypad multiply
00075 // CL_KEY_KP_MINUS keypad minus
00076 // CL_KEY_KP_PLUS keypad plus
00077 // CL_KEY_KP_ENTER keypad enter
00078 // CL_KEY_UP up arrow
00079 // CL_KEY_DOWN down arrow
00080 // CL_KEY_RIGHT right arrow
00081 // CL_KEY_LEFT left arrow
00082 // CL_KEY_INSERT insert
00083 // CL_KEY_HOME home
00084 // CL_KEY_END end
00085 // CL_KEY_PAGEUP page up
00086 // CL_KEY_PAGEDOWN page down
00087 // CL_KEY_F1 F1
00088 // ...
00089 // CL_KEY_F12 F12
00090 // CL_KEY_NUMLOCK numlock
00091 // CL_KEY_CAPSLOCK capslock
00092 // CL_KEY_SCRLOCK scrollock
00093 // CL_KEY_RSHIFT right shift
00094 // CL_KEY_LSHIFT left shift
00095 // CL_KEY_RCTRL right ctrl
00096 // CL_KEY_LCTRL left ctrl
00097 // CL_KEY_ALTGR right alt / alt gr
00098 // CL_KEY_ALT left alt / alt
00099 // CL_KEY_PRINT print-screen
00100 //
00101 // CL_MOUSE_LEFTBUTTON mouse left button
00102 // CL_MOUSE_MIDDLEBUTTON mouse middle button
00103 // CL_MOUSE_RIGHTBUTTON mouse right button
00104 // CL_MOUSE_THUMBBUTTON mouse thumb button
00105 // CL_MOUSE_WHEELUP mouse wheel up
00106 // CL_MOUSE_WHEELDOWN mouse wheel down
00107 // CL_MOUSE_WHEELBUTTON mouse wheel click
00108 // </pre>
00109 {
00110 public:
00111 int id;
00112 // Key ID.
00113
00114 int ascii;
00115 // Ascii value or -1 if not available.
00116
00117 enum State
00118 {
00119 NoKey,
00120 Pressed,
00121 Released
00122 } state;
00123 // Key state. Was it pressed or released. NoKey is used when there were
00124 // no key available in the input buffer.
00125
00126 float x;
00127 // x-coordinate position if a pointing device was the source. -1 if none.
00128
00129 float y;
00130 // y-coordinate position if a pointing device was the source. -1 if none.
00131
00132 CL_Key() {
00133 id = CL_NO_KEY;
00134 state = NoKey;
00135 ascii = -1;
00136 x = -1;
00137 y = -1;
00138 }
00139
00140 CL_Key(int l_id, State l_state = NoKey, int l_ascii = -1, float l_x = -1, float l_y = -1) {
00141 id = l_id;
00142 state = l_state;
00143 ascii = l_ascii;
00144 x = l_x;
00145 y = l_y;
00146 }
00147 };
00148
00149 #endif
1.2.6 written by Dimitri van Heesch,
© 1997-2001