EmulationStation
EmulationStation copied to clipboard
[Enhancement] create CarouselComponent class
The idea is to split out the carousel used in SystemView into its own class. This would enable more applications (ie. in gamelistviews).
The new component would probably be multiple-inherited from GuiComponent and IList.
Plans on making a NES Classic type of Gamelist scrolling?
I played around with something along these lines a while back but didn't get to far with it. One concern I had about basing it on the carousel implementation is that the carousel, creates an ImageComponent and for every element. This works for the carousel, but I was concerned that it would not scale well to the gamelist where there are potentially a much larger amount of elements. Of course, I ended up spending most of my time trying to come up with a good solution around this, but never came up with something that I liked.
Hey John, Thanks for thinking about this. The end result will better if we take this one on together, I think.
Your point is a valid one, creating as many image components as there are list-items will surely cause issues. But could we not create as many as there are likely to be shown? So for a carousel with 10 elements visible at a time, we would need only so many (+maybe some padding for a responsive UI). This would be similar to what currently happens in ImageGridComponent where we need to cope with the same issue. In a way, a carousel is just an imagegrid limited to a single row/collumn.
So maybe, we should just get the grid working properly, and be done with it 😆
Whats this? Is someone thinking of tackling GridView again?
I suggest moving the discussion to forums as the comments would be too much on here. I would love to help where ever possible. Can we break this down to simpler tasks so devs can work together in parallel ?
@hex007 GridView is on my todo ( in steps ) once I'm done with the stuff I'm currently working on. Once things settle down I'll read through the existing code and the PR made quite some time ago, along with whatever repo that one was based on, to see which tasks it can be split up into.