Smooth listbox, where to start?

I would need a smooth scrolling listbox: there should not scroll at steps (columns or rows like now) but pixels showing partially the first and last columns / rows.

When showing a lot of images a step scroll like in the standard listbox is not the best solution, also I need dynamic loading of data due to the limits of the listbox control.

Should I start from scratch using a canvas? I made something similar for some rows of text and images and it works fine but would need a more complete solution with many events of the standard one including drag and drop.

Thanks for any help.

If you’re using it to show mostly images, then yes, I would start with a Canvas.
Or, if you have access to plugins, find one that lets you use NSCollectionView on Mac, and whatever the Windows equivalent is.


Currently this is my top wish for Xojo. As you have seen it’s just not possible with the current version.

You’ll see several posts for this same request, but still nothing native is available (not for desktop, at least).

Depending on your platform there are a couple of options you might want to look into. If I were to chooose one that didn’t mean starting from scratch, I’d say PiDog’s scrolling canvas allows for an easy foundation for creating your own. They’ve got the scrolling behaviours down which is what will be the hardest to emulate on your own.

Tim, thanks but I would prefer to stay OS independent if possible.

Eduardo, will take a look at PiDog’s canvas, thanks for the info.

The best OS-independent solution could be using an HTMLViewer, if you are familiar enough with HTML/CSS/JavaScript. I am using this in my last iOS app.

Otherwise, the canvas can do a nice job as well. I used that for the fonts apps I have in both the Mac App Store, and the Windows Store back in 2013.

In my canvas solution I had a finite number of picture, though, so I used a very tall picture that I scrolled.

If you need dynamic management, you will have to use a different logic.

Michel, yes, that is similar to the solution I opted for text and images but this time I need more versatility.

I guess I will start with Canvas, hope it won’t be too much work :wink: