Estructura SDL_MouseWheelEvent
Una estructura que contiene información de eventos de la rueda del ratón.
typedef struct SDL_MouseWheelEvent { Uint32 type; /**< ::SDL_MOUSEWHEEL */ Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ Uint32 windowID; /**< The window with mouse focus, if any */ Uint32 which; /**< The mouse instance id, or SDL_TOUCH_MOUSEID */ Sint32 x; /**< The amount scrolled horizontally, positive to the right and negative to the left */ Sint32 y; /**< The amount scrolled vertically, positive away from the user and negative toward the user */ Uint32 direction; /**< Set to one of the SDL_MOUSEWHEEL_* defines. When FLIPPED the values in X and Y will be opposite. Multiply by -1 to change them back */ float preciseX; /**< The amount scrolled horizontally, positive to the right and negative to the left, with float precision (added in 2.0.18) */ float preciseY; /**< The amount scrolled vertically, positive away from the user and negative toward the user, with float precision (added in 2.0.18) */ Sint32 mouseX; /**< X coordinate, relative to window (added in 2.26.0) */ Sint32 mouseY; /**< Y coordinate, relative to window (added in 2.26.0) */ } SDL_MouseWheelEvent;
Miembros
- type
- SDL_MOUSEWHEEL
- timestamp
- Marca de tiempo en milisegundos.
- windowID
- La ventana con el foco del teclado, si hay alguna.
- which
- El id de instancia del ratón, o SDL_TOUCH_MOUSEID, ver observaciones.
- x
- La cantidad desplazada horizontalmente, positivo a la derecha y negativo a la izquierda.
- y
- La cantidad desplazada verticalmente, positiva alejándose del usuario y negativa acercándose al usuario.
- direction
- SDL_MOUSEWHEEL_NORMAL o SDL_MOUSEWHEEL_FLIPPED; ver observaciones (>= SDL 2.0.4).
- preciseX
- La cantidad desplazada horizontalmente, positiva hacia la derecha y negativa hacia la izquierda, con precisión float (añadido en 2.0.18).
- preciseY
- La cantidad desplazada verticalmente, positiva alejándose del usuario y negativa acercándose al usuario, con precisión float (añadido en 2.0.18).
Observaciones
SDL_MouseWheelEvent es un miembro de la unión SDL_Event y se utiliza cuando se reporta un evento de tipo SDL_MOUSEWHEEL. Se accede a él a través del campo wheel del evento.
Un evento SDL_MOUSEWHEEL ocurre cada vez que un usuario mueve la rueda del ratón.
Los movimientos hacia la izquierda generan valores x negativos y hacia la derecha valores x positivos. Los movimientos hacia abajo (desplazamiento hacia atrás) generan valores y negativos y hacia arriba (desplazamiento hacia adelante) generan valores y positivos.
which puede ser SDL_TOUCH_MOUSEID, para eventos que fueron generados por un dispositivo de entrada táctil, y no un ratón real. Es posible que desee ignorar este tipo de eventos, si su aplicación ya maneja SDL_TouchFingerEvent.
SDL no abstrae las direcciones de desplazamiento de la rueda del ratón para que sean consistentes en todas las plataformas (SDL_MOUSEWHEEL_NORMAL). Si la dirección es SDL_MOUSEWHEEL_FLIPPED los valores en x e y serán opuestos. Multiplicar por -1 para cambiarlos de nuevo.
Ejemplo
SDL_Event event; while( SDL_PollEvent( &event ) ) { if(event.type == SDL_MOUSEWHEEL) { if(event.wheel.y > 0) // scroll up { // Put code for handling "scroll up" here! } else if(event.wheel.y < 0) // scroll down { // Put code for handling "scroll down" here! } if(event.wheel.x > 0) // scroll right { // ... } else if(event.wheel.x < 0) // scroll left { // ... } } else if(event.type == SDL_MOUSEBUTTONDOWN) { // ... handle mouse clicks ... } // ... handle other kinds of events ... }