/* ----------------------------------------------------------------------------- GSFramework Copyright 2001-2013 Emmanuel Julien. All Rights Reserved. ----------------------------------------------------------------------------- */ #include "input/input_mouse.h" using namespace GS::Input; //------------------------------------------------------------------------------ bool Mouse::IsDown(KeyCode key) const { switch (key) { case Key_Button0: return state.left_button; case Key_Button1: return state.right_button; case Key_Button2: return state.middle_button; default: break; } return false; } bool Mouse::WasDown(KeyCode key) const { switch (key) { case Key_Button0: return last_state.left_button; case Key_Button1: return last_state.right_button; case Key_Button2: return last_state.middle_button; default: break; } return false; } //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ bool Mouse::GetInputRange(InputCode i, float &mn, float &mx) const { switch (i) { case Input_AxisX: case Input_AxisY: mn = 0; mx = 1; return true; case Input_RotX: // Horizontal wheel. case Input_RotY: // Vertical wheel. mn = 0; mx = 1024; return true; default: break; } return false; } //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ float Mouse::GetValue(InputCode i) const { switch (i) { case Input_AxisX: return state.x; case Input_AxisY: return state.y; case Input_RotX: return state.hwheel; case Input_RotY: return state.wheel; default: break; } return 0; } float Mouse::GetLastValue(InputCode i) const { switch (i) { case Input_AxisX: return last_state.x; case Input_AxisY: return last_state.y; case Input_RotX: return last_state.hwheel; case Input_RotY: return last_state.wheel; default: break; } return 0; } //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ Mouse::Mouse() { state.x = 0; state.y = 0; state.left_button = false; state.right_button = false; state.middle_button = false; state.wheel = 0; state.hwheel = 0; last_state = state; } //------------------------------------------------------------------------------