====== (This is the legacy documentation for stable SDL2, the current stable version; [https://wiki.libsdl.org/SDL3/ SDL3] is the current development version.) ======
= SDL_MouseWheelEvent =
Mouse wheel event structure (event.wheel.*)
== Header File ==
Defined in [SDL_events.h](https://github.com/libsdl-org/SDL/blob/SDL2/include/SDL_events.h), but apps should _only_ `#include "SDL.h"`!
== Syntax ==
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;
== Code Examples ==
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 ...
}
== Data Fields ==
{|
|Uint32
|'''type'''
|SDL_MOUSEWHEEL
|-
|Uint32
|'''timestamp'''
|timestamp of the event
|-
|Uint32
|'''windowID'''
|the window with mouse focus, if any
|-
|Uint32
|'''which'''
|the mouse instance id, or SDL_TOUCH_MOUSEID; see [[#Remarks|Remarks]] for details
|-
|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 towards the user
|-
|Uint32
|'''direction'''
|SDL_MOUSEWHEEL_NORMAL or SDL_MOUSEWHEEL_FLIPPED; see [[#Remarks|Remarks]] for details (>= SDL 2.0.4)
|-
|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)
|}
== Related Enumerations ==
:[[SDL_EventType]]
== Related Structures ==
:[[SDL_Event]]
:[[SDL_MouseButtonEvent]]
:[[SDL_MouseMotionEvent]]
----
[[CategoryAPI]], [[CategoryAPIStruct]], [[CategoryStruct]], [[CategoryEvents]]