Beispiel #1
0
void EventHandler::HandleKeyBoard( const SDL_Event &event )
{
	ButtonState state = ConvertButtonStateFromSDL( event.type, EventType::Keyboard );

	if ( state != keyCode[ event.key.keysym.sym ] )
	{
		// Save new state of the button
		keyCode[ event.key.keysym.sym ] = state;

		AddKeyboardEvent( event );

		if ( event.key.keysym.sym == SDLK_ESCAPE )
			AddQuitEvent();
	}
}
Beispiel #2
0
/*====================================================================================================================
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
====================================================================================================================*/
		bool StdInput::OnEvent(const SEvent& event)
		{
			if (event.EventType == EET_MOUSE_INPUT_EVENT && m_bCaptureMouse)
			{
					switch(event.MouseInput.Event)
					{
					case EMIE_LMOUSE_PRESSED_DOWN:
						m_stateLeft = down;
						AddMouseEvent(core::vector2df(event.MouseInput.X, event.MouseInput.Y), left, down);
						break;
					case EMIE_RMOUSE_PRESSED_DOWN:
						m_stateRight = down;
						AddMouseEvent(core::vector2df(event.MouseInput.X, event.MouseInput.Y), right, down);
						break;
					case EMIE_MMOUSE_PRESSED_DOWN:
						m_stateMiddle = down;
						AddMouseEvent(core::vector2df(event.MouseInput.X, event.MouseInput.Y), middle, down);
						break;
					case EMIE_LMOUSE_LEFT_UP:
						m_stateLeft = up;
						AddMouseEvent(core::vector2df(event.MouseInput.X, event.MouseInput.Y), left, up);
						break;
					case EMIE_RMOUSE_LEFT_UP:
						m_stateRight = up;
						AddMouseEvent(core::vector2df(event.MouseInput.X, event.MouseInput.Y), right, up);
						break;
					case EMIE_MMOUSE_LEFT_UP:
						m_stateMiddle = up;
						AddMouseEvent(core::vector2df(event.MouseInput.X, event.MouseInput.Y), middle, up);
						break;

					case EMIE_MOUSE_WHEEL:
						if(event.MouseInput.Wheel>=1) 		AddMouseEvent(core::vector2df(event.MouseInput.X, event.MouseInput.Y), wheel, up);
						else if(event.MouseInput.Wheel<=-1)	AddMouseEvent(core::vector2df(event.MouseInput.X, event.MouseInput.Y), wheel, down);
						else								AddMouseEvent(core::vector2df(event.MouseInput.X, event.MouseInput.Y), wheel, unknown);

						if(m_bUseWheelCallback)
							m_WheelCallback((float)event.MouseInput.Wheel);
						break;

					case EMIE_MOUSE_MOVED:
						m_vMousePos.X = event.MouseInput.X;
						m_vMousePos.Y = event.MouseInput.Y;
						break;

					default:
						break;
					}
			}
			else if (event.EventType == EET_KEY_INPUT_EVENT && m_bCaptureKeyboard)
			{
				State s;
				if(event.KeyInput.PressedDown)	s=down;
				else							s=up;

				AddKeyboardEvent(event.KeyInput.Key, s);

				m_aKeyState[event.KeyInput.Key-1] = s;
			}

			return false;
		}