-
-
Notifications
You must be signed in to change notification settings - Fork 97
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add a TableControl node for complex column-row data sets in UIs #97
Comments
This could be probably achieved with a GridContainer, although it would require some work. Potential material for a plugin (unless many people want this in core ofc). |
The biggest change for this over a GridContainer is the fact that it's an input focused controller instead of just layout. Something derived from GridContainer would be useful, though, especially if what's desired is also for content in each cell to be anything instead of just labels or editable text fields. |
Note that there's also #1107 which talks about the same thing by now, but this proposal is older. |
I think if we do implement this, it may be easier to just extend A new class can have a method such as As a user, it's not completely obvious why and how the Of course, it's always possible to come up with a completely new implementation without bloating It's indeed possible to create new GUI nodes via plugin/modules (goostengine/goost#80), but I haven't found a way to create new custom theme items for new classes. At most, I've previously managed to add overrides for constants/colors etc. But when it comes to defining new styles (like suggested in the proposal), it sounds difficult or impossible to do, because looks like you'd have to modify the default Do we have a proposal for this? Looks like there's no way to add new node types to themes (even on the level of C++ modules development). |
When you set a property of a theme, you can specify any type, even if it doesn't exist. Then you can use the newly added |
That linked PR also fixed the docs mentioned, because that underlined statement is false. Note that |
I came across this ticket while trying to achieve much simpler use-case where I need GridContainer(3x3) with children stretch ratio for height(and/or width) in 1:2:1. Since it is not supported, we should make stretch-ratio set to 1 and read-only in inspector for the Control Nodes added under GridContainer. |
Describe the project you are working on:
I'm working on a very UI heavy RPG with plenty of menus that present data in a tabular structure.
Describe how this feature / enhancement will help your project:
I find myself in tons of situations where I'm building up tables but have no way of selecting them cleanly without doing something hacky like having a backing ItemList control. Something more powerful than ItemList is necessary, to allow for the ability to select not just a single item, but a whole row or whole column of items and returning the associated group of values as one dictionary. A tabular UI is valuable for creating things like inventory lists as seen in RPGs where item names and counts are displayed on the same row but aligned to different sides of the row. Keeping an association of all data within the row and represented as a single selectable element is key for this.
Describe implementation detail for your proposal (in code), if possible:
Using a single controller, being able to define the following values
If this enhancement will not be used often, can it be worked around with a few lines of script?:
This enhancement has the potential to be used often. It's a complex control element as well, making it difficult to work out with existing control nodes and hacking it without making compromises in feature capability.
Is there a reason why this should be core and not an add-on in the asset library?:
It's a common use-case control for more UI heavy games, and would be a powerful addition to the editor itself in certain UIs, especially for something like #13
The text was updated successfully, but these errors were encountered: