Jump to content

How to get mouse wheel listener on gui?


SHsuperCM

Recommended Posts

Call

org.lwjgl.input.Mouse#getEventDWheel

from your override of

GuiScreen#handleMouseInput

to get the scroll amount, if any.

 

I suggest looking at how vanilla and Forge use this in various GUI classes like

GuiScrollingList

or

GuiChat

.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Link to comment
Share on other sites

thanks so much..

modified a bit the

handleMouseInput

from the

GuiChat

class.

why didnt i think of looking at that i dont know....

    public void handleMouseInput() throws IOException
    {
        super.handleMouseInput();
        int i = Mouse.getEventDWheel();

        if (i != 0)
        {
            if (i > 1)
            {
                i = 1;
            }

            if (i < -1)
            {
                i = -1;
            }

            recordsScroll += i;
        }
    }

ill tweak it a bit more after that to limit and such...

Doing stuff n' things

Link to comment
Share on other sites

And then multiply by any value you want to make it go faster/slower.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

And then multiply by any value you want to make it go faster/slower.

ye i was going to make it go faster anyway.. i just took the base

 

but

You can just do

int i = Integer.signum(Mouse.getEventDWheel());

and have the same effect as with all those if statements.

wowowowow signum? wth is signum? i never even heard a word that is looking like this word..

 

i think i like the normal code instead, where its more spread out on the method.. so later when i look at it i know what it does easly...

 

actually i do know signalum(http://ftbwiki.org/Signalum_Ingot) and it looks a bit like signum? rig;right? right?  ;D

Doing stuff n' things

Link to comment
Share on other sites

Signum is fancy-word for sign.

signum(i)

gives you -1 for negative numbers, +1 for positive numbers and 0 for 0.

just telling which side of the plate the number is? that's it? i wonder why mojang didnt use this..

in the source code it does then exactly what signum does..

Doing stuff n' things

Link to comment
Share on other sites

so looked around java a bit online and realised how simple it is.. i just never used it...

 

it compacted the code way more..

    public void handleMouseInput() throws IOException{super.handleMouseInput();
        recordsScroll += Math.signum(Mouse.getEventDWheel());  //note to self(signum returns +1 for positive numbers and -1 for negative numbers, 0 for 0..)
    }

Doing stuff n' things

Link to comment
Share on other sites

No, don't do Math.signum! It's for floating point numbers and compared to

Integer.signum

it's horribly slow. Plus, why are you even dealing with floating point?

oh oops.. tnx for letting me know...

and what u mean by floating point?

Doing stuff n' things

Link to comment
Share on other sites

Math.signum

only exists in two versions where it takes a

double

or a

float

and it returns the same thing. There is no

int signum(int)

in

Math

, only

double signum(double)

and

float signum(float)

ok i understood it already.. i changed it to

Integer.signum

Doing stuff n' things

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.