SDL Wiki

SDL_MouseWheelEvent

A structure that contains mouse wheel event information.

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)

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_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.

SDL_EventType
SDL_Event
SDL_MouseButtonEvent
SDL_MouseMotionEvent

CategoryStruct, CategoryEvents


[ edit | delete | history | feedback | raw ]

[ front page | index | search | recent changes | git repo | offline html ]

All wiki content is licensed under Creative Commons Attribution 4.0 International (CC BY 4.0).
Wiki powered by ghwikipp.