Scrolling `racket/gui` panels with the mouse

More context

Tagging @bogdan so they can follow the thread.

What would it take for racket/gui's panels to be scrollable via the mouse (i.e., without having to click and drag the scrollbar)? Bogdan has suggested racket/gui needs an update for this because, while there are ways to get the scroll events, there is no way to control the scroll position. Of course, DrRacket's editor area behaves appropriately—possibly there is some code in the editor class hierarchy that can be ported over towards the panels?

I would be willing to donate some time to help with this, with the major caveat being that I am not a racket/gui or racket/class expert.

I looked at the "more context" link you provided, and I can tell that list-view% definitely supports scrolling via the mouse, I use that feature in my application quite a lot.

I am using Windows, perhaps this is platform specific, or you mean something else?

EDIT: looks like I misread your comment, I was thinking about list-box%, you are talking about list-view from the gui-easy package.

Alex.

1 Like

I would really love this! Here's a version I reported on the mailing list—I noted at the time that "Dr. Racket's Colors>Color Schemes preferences tab also does not scroll in response to the mouse/trackpad"—and here's a GitHub issue: Panels/Frames do not respond to scrolling · Issue #68 · racket/gui · GitHub

1 Like

Reading through that old groups discussion, I remember that I did some more investigations since than. Basically a scrollable panel% is implemented by racket/gui using an underlying canvas% object, not using the OS level panel classes, so the implementation could be extended to support scrolling using the mouse, although special care needs to be taken to pass scroll events to the underlying widgets inside the panel (for example when having a text editor inside a scrollable panel)

Alex.

1 Like