SDL_MouseWheelEvent
A structure that contains mouse wheel event information.
Contents
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 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 for details (>= SDL 2.0.4) |
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 ...
}
Remarks
SDL_MouseWheelEvent is a member of the SDL_Event union and is used when an event of type SDL_MOUSEWHEEL is reported. You would access it through the event's wheel field.
An SDL_MOUSEWHEEL 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