forked from dolphin-emu/dolphin
		
	git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2591 8ced0084-cf51-0410-be5f-012b33b47a6e
		
			
				
	
	
		
			265 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			265 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
// SFML - Simple and Fast Multimedia Library
 | 
						|
// Copyright (C) 2007-2008 Laurent Gomila (laurent.gom@gmail.com)
 | 
						|
//
 | 
						|
// This software is provided 'as-is', without any express or implied warranty.
 | 
						|
// In no event will the authors be held liable for any damages arising from the use of this software.
 | 
						|
//
 | 
						|
// Permission is granted to anyone to use this software for any purpose,
 | 
						|
// including commercial applications, and to alter it and redistribute it freely,
 | 
						|
// subject to the following restrictions:
 | 
						|
//
 | 
						|
// 1. The origin of this software must not be misrepresented;
 | 
						|
//    you must not claim that you wrote the original software.
 | 
						|
//    If you use this software in a product, an acknowledgment
 | 
						|
//    in the product documentation would be appreciated but is not required.
 | 
						|
//
 | 
						|
// 2. Altered source versions must be plainly marked as such,
 | 
						|
//    and must not be misrepresented as being the original software.
 | 
						|
//
 | 
						|
// 3. This notice may not be removed or altered from any source distribution.
 | 
						|
 | 
						|
#ifndef SFML_EVENT_HPP
 | 
						|
#define SFML_EVENT_HPP
 | 
						|
 | 
						|
 | 
						|
namespace sf
 | 
						|
{
 | 
						|
	namespace Key
 | 
						|
	{
 | 
						|
		enum Code
 | 
						|
		{
 | 
						|
			A = 'a',
 | 
						|
			B = 'b',
 | 
						|
			C = 'c',
 | 
						|
			D = 'd',
 | 
						|
			E = 'e',
 | 
						|
			F = 'f',
 | 
						|
			G = 'g',
 | 
						|
			H = 'h',
 | 
						|
			I = 'i',
 | 
						|
			J = 'j',
 | 
						|
			K = 'k',
 | 
						|
			L = 'l',
 | 
						|
			M = 'm',
 | 
						|
			N = 'n',
 | 
						|
			O = 'o',
 | 
						|
			P = 'p',
 | 
						|
			Q = 'q',
 | 
						|
			R = 'r',
 | 
						|
			S = 's',
 | 
						|
			T = 't',
 | 
						|
			U = 'u',
 | 
						|
			V = 'v',
 | 
						|
			W = 'w',
 | 
						|
			X = 'x',
 | 
						|
			Y = 'y',
 | 
						|
			Z = 'z',
 | 
						|
			Num0 = '0',
 | 
						|
			Num1 = '1',
 | 
						|
			Num2 = '2',
 | 
						|
			Num3 = '3',
 | 
						|
			Num4 = '4',
 | 
						|
			Num5 = '5',
 | 
						|
			Num6 = '6',
 | 
						|
			Num7 = '7',
 | 
						|
			Num8 = '8',
 | 
						|
			Num9 = '9',
 | 
						|
			Escape = 256,
 | 
						|
			LControl,
 | 
						|
			LShift,
 | 
						|
			LAlt,
 | 
						|
			LSystem,
 | 
						|
			RControl,
 | 
						|
			RShift,
 | 
						|
			RAlt,
 | 
						|
			RSystem,
 | 
						|
			Menu,
 | 
						|
			LBracket,
 | 
						|
			RBracket,
 | 
						|
			SemiColon,
 | 
						|
			Comma,
 | 
						|
			Period,
 | 
						|
			Quote,
 | 
						|
			Slash,
 | 
						|
			BackSlash,
 | 
						|
			Tilde,
 | 
						|
			Equal,
 | 
						|
			Dash,
 | 
						|
			Space,
 | 
						|
			Return,
 | 
						|
			Back,
 | 
						|
			Tab,
 | 
						|
			PageUp,
 | 
						|
			PageDown,
 | 
						|
			End,
 | 
						|
			Home,
 | 
						|
			Insert,
 | 
						|
			Delete,
 | 
						|
			Add,
 | 
						|
			Subtract,
 | 
						|
			Multiply,
 | 
						|
			Divide,
 | 
						|
			Left,
 | 
						|
			Right,
 | 
						|
			Up,
 | 
						|
			Down,
 | 
						|
			Numpad0,
 | 
						|
			Numpad1,
 | 
						|
			Numpad2,
 | 
						|
			Numpad3,
 | 
						|
			Numpad4,
 | 
						|
			Numpad5,
 | 
						|
			Numpad6,
 | 
						|
			Numpad7,
 | 
						|
			Numpad8,
 | 
						|
			Numpad9,
 | 
						|
			F1,
 | 
						|
			F2,
 | 
						|
			F3,
 | 
						|
			F4,
 | 
						|
			F5,
 | 
						|
			F6,
 | 
						|
			F7,
 | 
						|
			F8,
 | 
						|
			F9,
 | 
						|
			F10,
 | 
						|
			F11,
 | 
						|
			F12,
 | 
						|
			F13,
 | 
						|
			F14,
 | 
						|
			F15,
 | 
						|
			Pause,
 | 
						|
 | 
						|
			Count // For internal use
 | 
						|
		};
 | 
						|
	}
 | 
						|
 | 
						|
 | 
						|
	namespace Mouse
 | 
						|
	{
 | 
						|
		enum Button
 | 
						|
		{
 | 
						|
			Left,
 | 
						|
			Right,
 | 
						|
			Middle,
 | 
						|
			XButton1,
 | 
						|
			XButton2,
 | 
						|
 | 
						|
			Count // For internal use
 | 
						|
		};
 | 
						|
	}
 | 
						|
 | 
						|
 | 
						|
	namespace Joy
 | 
						|
	{
 | 
						|
		enum Axis
 | 
						|
		{
 | 
						|
			AxisX,
 | 
						|
			AxisY,
 | 
						|
			AxisZ,
 | 
						|
			AxisR,
 | 
						|
			AxisU,
 | 
						|
			AxisV,
 | 
						|
			AxisPOV,
 | 
						|
 | 
						|
			Count // For internal use
 | 
						|
		};
 | 
						|
	}
 | 
						|
 | 
						|
 | 
						|
	class Event
 | 
						|
	{
 | 
						|
	public :
 | 
						|
 | 
						|
		struct KeyEvent
 | 
						|
		{
 | 
						|
			Key::Code Code;
 | 
						|
			bool      Alt;
 | 
						|
			bool      Control;
 | 
						|
			bool      Shift;
 | 
						|
		};
 | 
						|
 | 
						|
		struct TextEvent
 | 
						|
		{
 | 
						|
			// I'm not sure we need this...
 | 
						|
			unsigned short Unicode;
 | 
						|
		};
 | 
						|
 | 
						|
		struct MouseMoveEvent
 | 
						|
		{
 | 
						|
			int X;
 | 
						|
			int Y;
 | 
						|
		};
 | 
						|
 | 
						|
		struct MouseButtonEvent
 | 
						|
		{
 | 
						|
			Mouse::Button Button;
 | 
						|
			int           X;
 | 
						|
			int           Y;
 | 
						|
		};
 | 
						|
 | 
						|
		struct MouseWheelEvent
 | 
						|
		{
 | 
						|
			int Delta;
 | 
						|
		};
 | 
						|
 | 
						|
		struct JoyMoveEvent
 | 
						|
		{
 | 
						|
			unsigned int JoystickId;
 | 
						|
			Joy::Axis    Axis;
 | 
						|
			float        Position;
 | 
						|
		};
 | 
						|
 | 
						|
		struct JoyButtonEvent
 | 
						|
		{
 | 
						|
			unsigned int JoystickId;
 | 
						|
			unsigned int Button;
 | 
						|
		};
 | 
						|
 | 
						|
		struct SizeEvent
 | 
						|
		{
 | 
						|
			unsigned int Width;
 | 
						|
			unsigned int Height;
 | 
						|
		};
 | 
						|
 | 
						|
		enum EventType
 | 
						|
		{
 | 
						|
			Closed,
 | 
						|
			Resized,
 | 
						|
			LostFocus,
 | 
						|
			GainedFocus,
 | 
						|
			TextEntered,
 | 
						|
			KeyPressed,
 | 
						|
			KeyReleased,
 | 
						|
			MouseWheelMoved,
 | 
						|
			MouseButtonPressed,
 | 
						|
			MouseButtonReleased,
 | 
						|
			MouseMoved,
 | 
						|
			MouseEntered,
 | 
						|
			MouseLeft,
 | 
						|
			JoyButtonPressed,
 | 
						|
			JoyButtonReleased,
 | 
						|
			JoyMoved
 | 
						|
		};
 | 
						|
 | 
						|
		// Member data
 | 
						|
		EventType Type; 
 | 
						|
 | 
						|
		union
 | 
						|
		{
 | 
						|
			KeyEvent         Key;
 | 
						|
			TextEvent        Text;
 | 
						|
			MouseMoveEvent   MouseMove;
 | 
						|
			MouseButtonEvent MouseButton;
 | 
						|
			MouseWheelEvent  MouseWheel;
 | 
						|
			JoyMoveEvent     JoyMove;
 | 
						|
			JoyButtonEvent   JoyButton;
 | 
						|
			SizeEvent        Size;
 | 
						|
		};
 | 
						|
	};
 | 
						|
 | 
						|
} // namespace sf
 | 
						|
 | 
						|
 | 
						|
#endif // SFML_EVENT_HPP
 |