Discussion:
[SDL] Mousewheel scrolling?[SDL 2.03]
theatron
2016-10-17 05:27:30 UTC
Permalink
I've been experimenting with the mouse events today and im basically confused on how i can make this work the way i want it to. Whenever i scroll the mouse wheel up it literally only outputs the number 1. But when i trace tge mouses position it gives me alot more than just "1". Im trying to add a feature in my app that'll allow it to scroll up and down and how fast it'll scroll is based on how fast the wheels going(ex: Web Browsers).

Heres the code i had:

Code:

int y = 0;

void Update()
{
if(evt.type = SDL_MOUSEWHEEL)
{
cout << y << endl;
}

}




Is SDL 2 capable of the kind of mouse scrolling i mentioned? or am i doing it the wrong way :/ ?

Thanks
Ismael Serrano
2016-10-17 07:37:32 UTC
Permalink
The mouse wheel even has the up and down information. If you have a event
receiver function and an update function. Trough the event function you can
get if the mouse moved up or down and the update function you can get the
last wheel state and reset it. In this way you can get the direction for
every loop. If the wheel move faster you will be able to get a value
different than 0 in more loops.

Take a look to this tutorial, may be helpful.

http://www.falukdevelop.com/2016/09/07/sdl2_mouse_implementation/

Greetings!
Post by theatron
I've been experimenting with the mouse events today and im basically
confused on how i can make this work the way i want it to. Whenever i
scroll the mouse wheel up it literally only outputs the number 1. But when
i trace tge mouses position it gives me alot more than just "1". Im trying
to add a feature in my app that'll allow it to scroll up and down and how
fast it'll scroll is based on how fast the wheels going(ex: Web Browsers).
int y = 0;
void Update()
{
if(evt.type = SDL_MOUSEWHEEL)
{
cout << y << endl;
}
}
Is SDL 2 capable of the kind of mouse scrolling i mentioned? or am i doing
it the wrong way :/ ?
Thanks
_______________________________________________
SDL mailing list
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
Sanette
2016-10-17 08:40:20 UTC
Permalink
1. the basic behaviour is to add some fixed number of pixels to the
vertical position of the element you want to scroll at each mouse
wheel event. for instance add (5 multiplied by the y field of
SDL_MouseWheelEvent)

2. if your event loop is not continuous or too slow, the events will
accumulate. It's a good idea to sum them up at once (and remove them
from the event queue).

3. if you want *smooth* scrolling like in most browsers, it is much more
delicate. Few people have a good code for this.
I've been experimenting with the mouse events today and im basically confused on how i can make this work the way i want it to. Whenever i scroll the mouse wheel up it literally only outputs the number 1. But when i trace tge mouses position it gives me alot more than just "1". Im trying to add a feature in my app that'll allow it to scroll up and down and how fast it'll scroll is based on how fast the wheels going(ex: Web Browsers). > > Heres the code i had: > > > > > > > > Code: > > int y = 0; > >
void Update() > { > if(evt.type = SDL_MOUSEWHEEL) > {
cout << y << endl; > } > > } > > > Is SDL 2
capable of the kind of mouse scrolling i mentioned? or am i doing it the
wrong way :/ ? > > Thanks > > >
_______________________________________________ > SDL mailing list >
***@lists.libsdl.org > http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
Loading...