emilk/egui

`ScrollArea` adjustments for better configuration/customization

MStarha opened this issue · 2 comments

I have a couple improvements in mind for ScrollArea that I would like to introduce. I am not sure whether these have been mentioned/worked on somewhere, I have not been able to find any besides #2163.

  • enable/disable scrolling by dragging the contained UI, dragging a scroll bar and mouse wheel scrolling independently of each other (currently, there's only ScrollArea::drag_to_scroll() and ScrollArea::enable_scrolling())
  • hide scroll bars when scrolling by dragging them is disabled
  • use Event::MouseWheel as input for mouse scrolling instead of reading PassState, as a result this will enable the user/programmer to consume the scoll event (though I am not sure whether implementing it this way will be possible, I have not tried yet - alternatively reading InputState could help)
  • scroll speed multiplier independent for each axis
  • support for custom cursor for hovering and dragging

I might add features that I come up with while working or take on other ideas and suggestions from here.

I just created this issue and was wondering if this is under your radar or something you'd like to include as part of these improvements:

Scroll is not locked to a nested ScrollArea

It does not fit inside the "configuration/customization" topic, so I think it is better to have a sepate PR for that. I might look into that once I am done with this issue, though I do not want to give you any false promises (I might not have time for that, unlike this issue which impacts me directly).