Skip to content
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

Component based UI system #802

Merged
merged 6 commits into from
Jan 8, 2025
Merged

Component based UI system #802

merged 6 commits into from
Jan 8, 2025

Conversation

davesmith00000
Copy link
Member

@davesmith00000 davesmith00000 commented Jan 5, 2025

The PR adds a new component based UI system to Indigo, allowing you to build UI's that automatically flow the layout. You can use it in two ways:

  1. You can render components and groups of components yourself, anywhere. (Ugly demo included in this PR)
  2. You can use the WindowManager subsystem to get window-like functionality. (Nice demos in the Roguelike-starterkit)

This work has been a long time coming. I think I've been looking at it off and on for nine months now, and I'm confident that it will still have a lot of sharp edges and areas that could be improved. That said, it feels like a decent foundation to build on and is surely useful as-is, even if imperfect. Also I'm very pleased to see the back of it!

This work started life in the roguelike-starterkit, but has been made generic and backported to Indigo.

For now, the outstanding work is that we're going to need demos and docs, but that should live in indigo-docs. I have tested all this in the Roguelike-starterkit, and will do so again before merging this PR.

This PR also moves the existing Indigo UI components from indigoextras.ui.* to indigoextras.ui.simple.*.

The new work can be imported with:

import indigoextras.ui.*
import indigoextras.ui.syntax.*
switches_and_radios.mov
switches_and_radios_terminal.mov

cascading-ui

@davesmith00000 davesmith00000 requested review from hobnob and bilki January 5, 2025 11:14
@davesmith00000 davesmith00000 self-assigned this Jan 5, 2025
@davesmith00000
Copy link
Member Author

Updated the roguelike-starterkit PR and it all works fine when published locally (CI will have to wait for an Indigo release).

@davesmith00000
Copy link
Member Author

I'm going to go ahead and merge this so that we've got time to try using it before we release it.

@davesmith00000 davesmith00000 merged commit af4896a into main Jan 8, 2025
2 checks passed
@davesmith00000 davesmith00000 deleted the component-based-ui branch January 8, 2025 09:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant