godotengine / godot-proposals

Godot Improvement Proposals (GIPs)
MIT License
1.16k stars 97 forks source link

Add an "Inverse Sort" property to BoxContainer #804

Open donut-on-ice opened 4 years ago

donut-on-ice commented 4 years ago

Describe the project you are working on: Simple GUI with symmetric horizontal lists of overlapping components.

Describe the problem or limitation you are having in your project: When using the property "Separation" of a Box Container with negative values the right/bottom item overlaps the left/top one.

Describe the feature / enhancement and how it helps to overcome the problem or limitation: There should be a checkbox to inverse sort items in Box Containers so that the items higher in the list will be placed in the right/bottom and not just left/top.

Describe how your proposal will work, with code, pseudocode, mockups, and/or diagrams: Lets say there are 3 items in a VBoxContainer in this order: "(1) (2) (3)" Lets say the Separation is set to -2/3 of an item's length. Inverse Sort [ ] -> Box Container will function just like it does now and will display "(((3)" Inverse Sort [x] -> Box Container will place direct children from the end of the rectangle to the beginning and will display "(3)))"

If this enhancement will not be used often, can it be worked around with a few lines of script?: Probably with 2 lines of code and flipping the resource images but since there is no "z" for control items it seems more natural to have this option in a Box Container

Is there a reason why this should be core and not an add-on in the asset library?: Just that an user would expect this option to be in a Box Container when he would realize there is no "z" property for control items and he would need to keep the order of the items on screen

Production edit (keywords for easier searching): reverse, revert, invert

bojidar-bg commented 4 years ago

Was also discussed in https://github.com/godotengine/godot/pull/35791 and https://github.com/godotengine/godot/issues/7692.

donut-on-ice commented 4 years ago

Indeed this issue is fully covered by https://github.com/godotengine/godot/pull/35791. I will close this

bojidar-bg commented 4 years ago

Reopening since the linked PR is not merged yet; also we prefer to slowly move discussions here instead of keeping them on the main repo :smiley:

Kazox61 commented 1 month ago

I have the same problem as I described in #10980