= SDL_MouseWheelEvent =
A structure that contains mouse wheel event information.
== Data Fields ==
{|
|Uint32
|'''type'''
|SDL_EVENT_MOUSE_WHEEL
|-
|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)
|}
== Code Examples ==
SDL_Event event;
while( SDL_PollEvent( &event ) )
{
if(event.type == SDL_EVENT_MOUSE_WHEEL)
{
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_EVENT_MOUSE_BUTTON_DOWN)
{
// ... handle mouse clicks ...
}
// ... handle other kinds of events ...
}
== Remarks ==
[[SDL_MouseWheelEvent]] is a member of the [[SDL_Event]] union and is used when an event of type SDL_EVENT_MOUSE_WHEEL is reported. You would access it through the event's wheel
field.
An SDL_EVENT_MOUSE_WHEEL event occurs whenever a user moves the mouse wheel.
Movements to the left generate negative '''x''' values and to the right generate positive '''x''' values. Movements down (scroll backward) generate negative '''y''' values and up (scroll forward) generate positive '''y''' values.
'''which''' may be SDL_TOUCH_MOUSEID, for events that were generated by a touch input device, and not a real mouse. You might want to ignore such events, if your application already handles [[SDL_TouchFingerEvent]].
SDL does not abstract the mouse wheel scroll directions to be consistent across all platforms (SDL_MOUSEWHEEL_NORMAL). If '''direction''' is SDL_MOUSEWHEEL_FLIPPED the values in '''x''' and '''y''' will be opposite. Multiply by -1 to change them back.
== Related Enumerations ==
:[[SDL_EventType]]
== Related Structures ==
:[[SDL_Event]]
:[[SDL_MouseButtonEvent]]
:[[SDL_MouseMotionEvent]]
----
[[CategoryStruct]], [[CategoryEvents]]