#pragma once

#include <SDL3/SDL.h>

namespace Mouse {
    extern Uint32 cursorHideTime;     // Tiempo en milisegundos para ocultar el cursor por inactividad
    extern Uint32 lastMouseMoveTime;  // Última vez que el ratón se movió
    extern bool cursorVisible;        // Estado del cursor

    // Procesa un evento de ratón. En pantalla completa ignora el movimiento
    // para no volver a mostrar el cursor.
    void handleEvent(const SDL_Event &event, bool fullscreen);

    // Actualiza la visibilidad del cursor. En modo ventana lo oculta
    // después de cursorHideTime ms sin movimiento. En pantalla completa
    // lo mantiene siempre oculto.
    void updateCursorVisibility(bool fullscreen);
}  // namespace Mouse
