A new ScrollPanel GUI component is going to be born with the following capabilities:
Scroll Orientation Support:
Allows scrolling in horizontal, vertical, or both directions, providing flexibility for different use cases.
Partial Object Rendering:
Supports partial rendering of objects that are only partially visible within the scroll boundaries, improving visual accuracy and performance.
Boundary-Constrained Mouse Interaction:
Handles mouse events strictly within the panel's visible boundaries, preventing interaction with objects outside the scrollable area.
Minimum Internal Size (min_width, min_height):
Introduces support for virtual space management, allowing the panel to maintain a minimum internal size independent of its actual on-screen dimensions.
Even when the panel is resized, this ensures that the content respects a defined virtual space (with min_width and min_height), effectively simulating a larger internal canvas.
This is particularly useful for large content or scenarios where a more extensive scrollable area is required than the current visible panel.
Here is the showcase
Pull request: https://gitea.wildfiregames.com/0ad/0ad/pulls/7118
Please give me feedback to keep improving GUI Components.