00001 00002 // 00003 // SFML - Simple and Fast Multimedia Library 00004 // Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@gmail.com) 00005 // 00006 // This software is provided 'as-is', without any express or implied warranty. 00007 // In no event will the authors be held liable for any damages arising from the use of this software. 00008 // 00009 // Permission is granted to anyone to use this software for any purpose, 00010 // including commercial applications, and to alter it and redistribute it freely, 00011 // subject to the following restrictions: 00012 // 00013 // 1. The origin of this software must not be misrepresented; 00014 // you must not claim that you wrote the original software. 00015 // If you use this software in a product, an acknowledgment 00016 // in the product documentation would be appreciated but is not required. 00017 // 00018 // 2. Altered source versions must be plainly marked as such, 00019 // and must not be misrepresented as being the original software. 00020 // 00021 // 3. This notice may not be removed or altered from any source distribution. 00022 // 00024 00025 #ifndef SFML_EVENT_HPP 00026 #define SFML_EVENT_HPP 00027 00029 // Headers 00031 #include <SFML/Config.hpp> 00032 00033 00034 namespace sf 00035 { 00039 namespace Key 00040 { 00041 enum Code 00042 { 00043 A = 'a', 00044 B = 'b', 00045 C = 'c', 00046 D = 'd', 00047 E = 'e', 00048 F = 'f', 00049 G = 'g', 00050 H = 'h', 00051 I = 'i', 00052 J = 'j', 00053 K = 'k', 00054 L = 'l', 00055 M = 'm', 00056 N = 'n', 00057 O = 'o', 00058 P = 'p', 00059 Q = 'q', 00060 R = 'r', 00061 S = 's', 00062 T = 't', 00063 U = 'u', 00064 V = 'v', 00065 W = 'w', 00066 X = 'x', 00067 Y = 'y', 00068 Z = 'z', 00069 Num0 = '0', 00070 Num1 = '1', 00071 Num2 = '2', 00072 Num3 = '3', 00073 Num4 = '4', 00074 Num5 = '5', 00075 Num6 = '6', 00076 Num7 = '7', 00077 Num8 = '8', 00078 Num9 = '9', 00079 Escape = 256, 00080 LControl, 00081 LShift, 00082 LAlt, 00083 LSystem, 00084 RControl, 00085 RShift, 00086 RAlt, 00087 RSystem, 00088 Menu, 00089 LBracket, 00090 RBracket, 00091 SemiColon, 00092 Comma, 00093 Period, 00094 Quote, 00095 Slash, 00096 BackSlash, 00097 Tilde, 00098 Equal, 00099 Dash, 00100 Space, 00101 Return, 00102 Back, 00103 Tab, 00104 PageUp, 00105 PageDown, 00106 End, 00107 Home, 00108 Insert, 00109 Delete, 00110 Add, 00111 Subtract, 00112 Multiply, 00113 Divide, 00114 Left, 00115 Right, 00116 Up, 00117 Down, 00118 Numpad0, 00119 Numpad1, 00120 Numpad2, 00121 Numpad3, 00122 Numpad4, 00123 Numpad5, 00124 Numpad6, 00125 Numpad7, 00126 Numpad8, 00127 Numpad9, 00128 F1, 00129 F2, 00130 F3, 00131 F4, 00132 F5, 00133 F6, 00134 F7, 00135 F8, 00136 F9, 00137 F10, 00138 F11, 00139 F12, 00140 F13, 00141 F14, 00142 F15, 00143 Pause, 00144 00145 Count // For internal use 00146 }; 00147 } 00148 00149 00153 namespace Mouse 00154 { 00155 enum Button 00156 { 00157 Left, 00158 Right, 00159 Middle, 00160 XButton1, 00161 XButton2, 00162 00163 Count // For internal use 00164 }; 00165 } 00166 00167 00171 namespace Joy 00172 { 00173 enum Axis 00174 { 00175 AxisX, 00176 AxisY, 00177 AxisZ, 00178 AxisR, 00179 AxisU, 00180 AxisV, 00181 AxisPOV, 00182 00183 Count // For internal use 00184 }; 00185 } 00186 00187 00191 class Event 00192 { 00193 public : 00194 00198 struct KeyEvent 00199 { 00200 Key::Code Code; 00201 bool Alt; 00202 bool Control; 00203 bool Shift; 00204 }; 00205 00209 struct TextEvent 00210 { 00211 Uint32 Unicode; 00212 }; 00213 00217 struct MouseMoveEvent 00218 { 00219 int X; 00220 int Y; 00221 }; 00222 00226 struct MouseButtonEvent 00227 { 00228 Mouse::Button Button; 00229 int X; 00230 int Y; 00231 }; 00232 00236 struct MouseWheelEvent 00237 { 00238 int Delta; 00239 }; 00240 00244 struct JoyMoveEvent 00245 { 00246 unsigned int JoystickId; 00247 Joy::Axis Axis; 00248 float Position; 00249 }; 00250 00254 struct JoyButtonEvent 00255 { 00256 unsigned int JoystickId; 00257 unsigned int Button; 00258 }; 00259 00263 struct SizeEvent 00264 { 00265 unsigned int Width; 00266 unsigned int Height; 00267 }; 00268 00272 enum EventType 00273 { 00274 Closed, 00275 Resized, 00276 LostFocus, 00277 GainedFocus, 00278 TextEntered, 00279 KeyPressed, 00280 KeyReleased, 00281 MouseWheelMoved, 00282 MouseButtonPressed, 00283 MouseButtonReleased, 00284 MouseMoved, 00285 MouseEntered, 00286 MouseLeft, 00287 JoyButtonPressed, 00288 JoyButtonReleased, 00289 JoyMoved 00290 }; 00291 00293 // Member data 00295 EventType Type; 00296 00297 union 00298 { 00299 KeyEvent Key; 00300 TextEvent Text; 00301 MouseMoveEvent MouseMove; 00302 MouseButtonEvent MouseButton; 00303 MouseWheelEvent MouseWheel; 00304 JoyMoveEvent JoyMove; 00305 JoyButtonEvent JoyButton; 00306 SizeEvent Size; 00307 }; 00308 }; 00309 00310 } // namespace sf 00311 00312 00313 #endif // SFML_EVENT_HPP
:: Copyright © 2007-2008 Laurent Gomila, all rights reserved :: Documentation generated by doxygen 1.5.2 ::