ComputerCraft

ComputerCraft

21M Downloads

Horizontal scroll event

viluon opened this issue · 10 comments

commented

It'd be nice if there were a mouse_horizontal_scroll (/mouse_horiz_scroll/mouse_hor_scroll, or maybe mouse_scroll_horizontal/...) event, or an extra parameter to the existing mouse_scroll event, either a boolean indicating the scroll axis, or another number equal to the amount of horizontal scrolling performed.

This would enable programs to react on full 2D scrolling on notebook touchpads, for example.

commented

If you're talking about mouse_scroll, it could probably be as simple as to have os.pullEvent("mouse_scroll")
return another parameter for horizontal scroll direction, like it does with vertical.
so the output would be event, verticalDirection, horizontalDirection, x,y.
Though, I'm no expert and there's most likely a better way to do this.

commented

I feel it'd be better to do this as a separate event. There's probably a fair few programs that will not cope with the scroll delta being zero (doing if delta > 0 then else and what not).

commented

fair point. so a mouse_scroll_horizontal event would be doable?

commented

Oh right, thanks @nothjarnan, I forgot about the mouse_ prefix. Updated the issue.

commented

I believe glfw reports both x and y scroll deltas, so should definitely be possible for 1.13. I suspect 1.12 is feasible, just haven't looked into it.

commented

Not to mention that this would enable much higher end mice with horizontal scrolling to be of use like this fabulous one that I personally own and think everyone should have because why wouldn't you.

On a side note, the mouse does have four (maybe six, idk if the DPI shift buttons count) additional buttons. Maybe it's a good call to have a mouse event overhaul in general?

commented

@hugeblank Allow for more mouse buttons? The one issue I could see with that is that programs are made that only work with certain mice, or a mouse that has x amount of buttons. But then it'd just be as easy as asking the author to make the buttons re-bindable, to be fair.

commented

@nothjarnan @hugeblank while this isn't a conversation well suited for this issue, strictly speaking, I believe ComputerCraft already supports more buttons — any extra buttons are simply assigned higher numbers (for example, my back button triggers an event, and is listed as button 5). This may be a perk of CCEmuX, however.

commented

I think so. I have tried to use buttons in game and iirc this doesn't work. May have been a CC:T thing too.

commented

Yeah, CC explicitly guards against that. CCEmuX really should too:

if( !m_locked && computer != null && computer.isColour() && button >= 0 && button <= 2 )

Edit: And it does! Yes, I'm evil.