36 lines
1.2 KiB
C++
36 lines
1.2 KiB
C++
#include "mouse.hpp"
|
|
|
|
namespace Mouse {
|
|
Uint32 cursorHideTime = 3000; // Tiempo en milisegundos para ocultar el cursor por inactividad
|
|
Uint32 lastMouseMoveTime = 0; // Última vez que el ratón se movió
|
|
bool cursorVisible = true; // Estado del cursor
|
|
|
|
void handleEvent(const SDL_Event &event, bool fullscreen) {
|
|
if (event.type == SDL_EVENT_MOUSE_MOTION) {
|
|
lastMouseMoveTime = SDL_GetTicks();
|
|
if (!cursorVisible && !fullscreen) {
|
|
SDL_ShowCursor();
|
|
cursorVisible = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
void updateCursorVisibility(bool fullscreen) {
|
|
// En pantalla completa el cursor siempre está oculto
|
|
if (fullscreen) {
|
|
if (cursorVisible) {
|
|
SDL_HideCursor();
|
|
cursorVisible = false;
|
|
}
|
|
return;
|
|
}
|
|
|
|
// En modo ventana, lo oculta tras el periodo de inactividad
|
|
const Uint32 currentTime = SDL_GetTicks();
|
|
if (cursorVisible && (currentTime - lastMouseMoveTime > cursorHideTime)) {
|
|
SDL_HideCursor();
|
|
cursorVisible = false;
|
|
}
|
|
}
|
|
} // namespace Mouse
|