bool Mouse::inject_event(const Event& event) { switch (event.type) { // mouse button pressed case SDL_MOUSEBUTTONDOWN: change_button_state(event.button.button, true); return true; // mouse button released case SDL_MOUSEBUTTONUP: change_button_state(event.button.button, false); return true; // mouse leave / enter window case SDL_WINDOWEVENT: switch (event.window.event) { case SDL_WINDOWEVENT_ENTER: m_in_screen = true; return true; case SDL_WINDOWEVENT_LEAVE: m_in_screen = false; return true; } } return false; }
bool Button::collision() { if(m_released && mouse_x>x && mouse_y>y && mouse_x<x+BUTTON_LENG_X && mouse_y<y+BUTTON_LENG_Y) { change_button_state(); return true; } return false; }