Main Page   Namespace List   Class Hierarchy   Compound List   File List   Compound Members   File Members  

key.h

Go to the documentation of this file.
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

Generated at Wed Apr 4 19:54:01 2001 for ClanLib by doxygen1.2.6 written by Dimitri van Heesch, © 1997-2001