Eigene Dateien/FlowVis/src/VEvent.h

Go to the documentation of this file.
00001 #pragma once
00002 
00003 #include "VVector.h"
00004 
00005 class VEvent 
00006 {
00007 public:
00008 
00009         VEvent()
00010         {
00011         };
00012 
00013         ~VEvent()
00014         {
00015         };
00016 
00017 private:
00018 
00019 };
00020 
00021 class VMouseEvent : public VEvent
00022 {
00023 public:
00024 
00025         enum Button
00026         {
00027                 BUTTON_NONE = -1,
00028                 BUTTON_LEFT     =  0,
00029                 BUTTON_MIDDLE   =  1,
00030                 BUTTON_RIGHT =  2
00031         };
00032 
00033         enum State
00034         {
00035                 STATE_NONE = -1,
00036                 STATE_UP =       0,
00037                 STATE_DOWN      =  1
00038         };
00039 
00040         enum Modifier
00041         {
00042                 MODIFIER_SHIFT =  0x00200000,
00043                 MODIFIER_CTRL   =  0x00400000,
00044                 MODIFIER_ALT    =  0x00800000
00045         };
00046 
00047         VMouseEvent( const VVector & vecPosition, 
00048                         const int iButton, 
00049                                 const int iStateLeft, 
00050                                 const int iStateMiddle, 
00051                                 const int iStateRight, 
00052                                 const int iModifiers) : position(vecPosition), 
00053                                                         button(iButton), 
00054                                                                                 modifier(iModifiers)
00055         {
00056                 state[BUTTON_LEFT] = iStateLeft;
00057                 state[BUTTON_MIDDLE] = iStateMiddle;
00058                 state[BUTTON_RIGHT] = iStateRight;
00059         };
00060 
00061         VMouseEvent() 
00062         {
00063                 state[BUTTON_LEFT] = STATE_UP;
00064                 state[BUTTON_MIDDLE] = STATE_UP;
00065                 state[BUTTON_RIGHT] = STATE_UP;
00066         };
00067 
00068         ~VMouseEvent()
00069         {
00070         };
00071 
00072         const VVector & getPosition() const
00073         {
00074                 return position;
00075         };
00076 
00077         const int getButton() const
00078         {
00079                 return button;
00080         };
00081 
00082         const int getState() const
00083         {
00084                 return state[button];
00085         };
00086 
00087         const int getLeftState() const
00088         {
00089                 return state[BUTTON_LEFT];
00090         };
00091 
00092         const int getMiddleState() const
00093         {
00094                 return state[BUTTON_MIDDLE];
00095         };
00096 
00097         const int getRightState() const
00098         {
00099                 return state[BUTTON_RIGHT];
00100         };
00101 
00102         const int getModifiers() const
00103         {
00104                 return modifier;
00105         };
00106 
00107 private:
00108 
00109         VVector position;
00110         int modifier;
00111         int button;
00112         int state[3];
00113 };
00114 
00115 class VKeyboardEvent : public VEvent
00116 {
00117 public:
00118 
00119         enum Key
00120         {
00121                 // misc keys
00122                 KEY_ESCAPE = 0x1000,
00123                 KEY_TAB = 0x1001,
00124                 KEY_BACKTAB = 0x1002,
00125                 KEY_BACKSPACE = 0x1003,
00126                 KEY_RETURN = 0x1004,
00127                 KEY_ENTER = 0x1005,
00128                 KEY_INSERT = 0x1006,
00129                 KEY_DELETE = 0x1007,
00130                 KEY_PAUSE = 0x1008,
00131                 KEY_PRINT = 0x1009,
00132                 KEY_SYSREQ = 0x100A,
00133 
00134                 // cursor movement
00135                 KEY_HOME = 0x1010,
00136                 KEY_END = 0x1011,
00137                 KEY_LEFT = 0x1012,
00138                 KEY_UP = 0x1013,
00139                 KEY_RIGHT = 0x1014,
00140                 KEY_DOWN = 0x1015,
00141                 KEY_PRIOR = 0x1016, KEY_PAGEUP = KEY_PRIOR,
00142                 KEY_NEXT = 0x1017, KEY_PAGEDOWN = KEY_NEXT,
00143 
00144                 // modifiers
00145                 KEY_SHIFT = 0x1020,
00146                 KEY_CONTROL = 0x1021,
00147                 KEY_META = 0x1022,
00148                 KEY_ALT = 0x1023,
00149                 KEY_CAPSLOCK = 0x1024,
00150                 KEY_NUMLOCK = 0x1025,
00151                 KEY_SCROLLLOCK = 0x1026,
00152 
00153                 // function keys
00154                 KEY_F1 = 0x1030,
00155                 KEY_F2 = 0x1031,
00156                 KEY_F3 = 0x1032,
00157                 KEY_F4 = 0x1033,
00158                 KEY_F5 = 0x1034,
00159                 KEY_F6 = 0x1035,
00160                 KEY_F7 = 0x1036,
00161                 KEY_F8 = 0x1037,
00162                 KEY_F9 = 0x1038,
00163                 KEY_F10 = 0x1039,
00164                 KEY_F11 = 0x103A,
00165                 KEY_F12 = 0x103B,
00166                 KEY_F13 = 0x103C,
00167                 KEY_F14 = 0x103D,
00168                 KEY_F15 = 0x103E,
00169                 KEY_F16 = 0x103F,
00170                 KEY_F17 = 0x1040,
00171                 KEY_F18 = 0x1041,
00172                 KEY_F19 = 0x1042,
00173                 KEY_F20 = 0x1043,
00174                 KEY_F21 = 0x1044,
00175                 KEY_F22 = 0x1045,
00176                 KEY_F23 = 0x1046,
00177                 KEY_F24 = 0x1047,
00178 
00179                 // F25 .. F35 only on X11
00180                 KEY_F25 = 0x1048,
00181                 KEY_F26 = 0x1049,
00182                 KEY_F27 = 0x104A,
00183                 KEY_F28 = 0x104B,
00184                 KEY_F29 = 0x104C,
00185                 KEY_F30 = 0x104D,
00186                 KEY_F31 = 0x104E,
00187                 KEY_F32 = 0x104F,
00188                 KEY_F33 = 0x1050,
00189                 KEY_F34 = 0x1051,
00190                 KEY_F35 = 0x1052,
00191 
00192                 // extra keys
00193                 KEY_SUPER_L = 0x1053,
00194                 KEY_SUPER_R = 0x1054,
00195                 KEY_MENU = 0x1055,
00196                 KEY_HYPER_L = 0x1056,
00197                 KEY_HYPER_R = 0x1057,
00198                 KEY_HELP = 0x1058,
00199 
00200                 // 7 bit printable ASCII
00201                 KEY_SPACE = 0x20,
00202                 KEY_ANY = KEY_SPACE,
00203                 KEY_EXCLAM = 0x21,
00204                 KEY_QUOTEDBL = 0x22,
00205                 KEY_NUMBERSIGN = 0x23,
00206                 KEY_DOLLAR = 0x24,
00207                 KEY_PERCENT = 0x25,
00208                 KEY_AMPERSAND = 0x26,
00209                 KEY_APOSTROPHE = 0x27,
00210                 KEY_PARENLEFT = 0x28,
00211                 KEY_PARENRIGHT = 0x29,
00212                 KEY_ASTERISK = 0x2A,
00213                 KEY_PLUS = 0x2B,
00214                 KEY_COMMA = 0x2C,
00215                 KEY_MINUS = 0x2D,
00216                 KEY_PERIOD = 0x2E,
00217                 KEY_SLASH = 0x2F,
00218                 KEY_0 = 0x30,
00219                 KEY_1 = 0x31,
00220                 KEY_2 = 0x32,
00221                 KEY_3 = 0x33,
00222                 KEY_4 = 0x34,
00223                 KEY_5 = 0x35,
00224                 KEY_6 = 0x36,
00225                 KEY_7 = 0x37,
00226                 KEY_8 = 0x38,
00227                 KEY_9 = 0x39,
00228                 KEY_COLON = 0x3A,
00229                 KEY_SEMICOLON = 0x3B,
00230                 KEY_LESS = 0x3C,
00231                 KEY_EQUAL = 0x3D,
00232                 KEY_GREATER = 0x3E,
00233                 KEY_QUESTION = 0x3F,
00234                 KEY_AT = 0x40,
00235                 KEY_A = 0x41,
00236                 KEY_B = 0x42,
00237                 KEY_C = 0x43,
00238                 KEY_D = 0x44,
00239                 KEY_E = 0x45,
00240                 KEY_F = 0x46,
00241                 KEY_G = 0x47,
00242                 KEY_H = 0x48,
00243                 KEY_I = 0x49,
00244                 KEY_J = 0x4A,
00245                 KEY_K = 0x4B,
00246                 KEY_L = 0x4C,
00247                 KEY_M = 0x4D,
00248                 KEY_N = 0x4E,
00249                 KEY_O = 0x4F,
00250                 KEY_P = 0x50,
00251                 KEY_Q = 0x51,
00252                 KEY_R = 0x52,
00253                 KEY_S = 0x53,
00254                 KEY_T = 0x54,
00255                 KEY_U = 0x55,
00256                 KEY_V = 0x56,
00257                 KEY_W = 0x57,
00258                 KEY_X = 0x58,
00259                 KEY_Y = 0x59,
00260                 KEY_Z = 0x5A,
00261                 KEY_BRACKETLEFT = 0x5B,
00262                 KEY_BACKSLASH = 0x5C,
00263                 KEY_BRACKETRIGHT = 0x5D,
00264                 KEY_ASCIICIRCUM = 0x5E,
00265                 KEY_UNDERSCORE = 0x5F,
00266                 KEY_QUOTELEFT = 0x60,
00267                 KEY_BRACELEFT = 0x7B,
00268                 KEY_BAR = 0x7C,
00269                 KEY_BRACERIGHT = 0x7D,
00270                 KEY_ASCIITILDE = 0x7E
00271         };
00272 
00273         enum Modifier
00274         {
00275                 MODIFIER_SHIFT =  0x00200000,
00276                 MODIFIER_CTRL   =  0x00400000,
00277                 MODIFIER_ALT    =  0x00800000
00278         };
00279 
00280 public:
00281 
00282         VKeyboardEvent(const int iKey, const int iModifiers) : key(iKey), modifier(iModifiers)
00283         {
00284         };
00285 
00286         ~VKeyboardEvent()
00287         {
00288         };
00289 
00290         const int getKey() const
00291         {
00292                 return key;
00293         };
00294 
00295         const int getModifiers() const
00296         {
00297                 return modifier;
00298         };
00299 
00300 private:
00301 
00302         int key;
00303         int modifier;
00304 };

Generated on Mon Jan 21 01:15:16 2008 for FlowVis by  doxygen 1.5.4