To be fair, I wouldn’t use a grid to demonstrate. I need to give this some more thought but I’m pretty swamped right now.
Preferably, I can pool together some example lists that aren’t flat, boring, and restrictive like
juce::ListBox as it stands.
The thing about the list box that I’d expect is the ability to freely stream items in and out, but with variable heights, with optional spacing between items, with focus handling in mind, and even adding and controlling over-pull animations and gravity/acceleration/deceleration to the list’s scroll.
Preferably, with that, your components would get notifications for when they’re being created/streamed in and when they’re getting streamed out (ie: for caching’s sake if scrolling up/down quickly, and for animation support).
If you visualise the various list type structures beyond just vanilla text lists, such as:
- comments and replies
- Like Teams, Slack, FB, Twitter
- multi-item rows with posters
- Netflix, Amazon Prime, Dinsey+, HBO Max
- EPG navigations
the pattern presents itself fairly obviously. This is why Android provides a
ListView and iOS its
UITableView, likewise with React Native and its various list views.
There’s not much point in me going into details in all of their design strategies. Suffice it to say that sometimes I feel like just abandoning JUCE for the UI because its components are lifeless and oversimplified.
My goal with this FR is to pull out some of the smaller bits of what I mentioned to get started - warm things up a bit.