-
Notifications
You must be signed in to change notification settings - Fork 28
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
Tabbed document UI example with elm #237
Open
hydra
wants to merge
102
commits into
khonsulabs:main
Choose a base branch
from
hydra:tabbed-document-ui-example-with-elm
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Tabbed document UI example with elm #237
hydra
wants to merge
102
commits into
khonsulabs:main
from
hydra:tabbed-document-ui-example-with-elm
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
… handle tab button highlighting. Issues: * the first tab always has a solid background, no idea why.
…ot_map for the tabs. There's no `on_selected` for `Select`, attempted to use `for_each` on the Dynamic<TabKey> Issues: * Tabs don't display any content. * First added tab is not selected by default.
Issues: * Rendering issues when using `with` without `height`, but don't want to specify a height.
Issues: * selected tab background color is not correct.
Issues * Config is not saved because control is not returned to `main()` by Cushy.
… passed around. Update tab API to take a context argument.
…active tab changes.
…t in a container. * Doesn't work, FIXME added.
* Some cosmetic. * Some required after rebasing on `upstream/main`.
* temporarily duplicating some items to test sidebar.
* Should use the theme colors. Probably needs to be turned into a wrapping widget so it can access the context to get the theme.
…e into a message handler.
…en there are no tabs.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is an example of a desktop productivity-style application.
It was developed after attempting the same thing in multiple different GUI frameworks, including: Freya, Floem, Vizia, MakePadUI, Iced. The full requirements for the example is in this PR, not all of which are currently met or implemented, however this example is probably useful for those new to Cushy wanting to see an example of a more complex application instead of trivial 'widget' examples.
A livestream video series is available on YouTube of the process and issues encountered.
https://www.youtube.com/playlist?list=PLUCLWCDEWm8g7pHKQGE7Pokk4wiVU8rLl
A comparison spreadsheet related to this investigation can be found here:
https://docs.google.com/spreadsheets/d/1cxH_GgzrGDpXm4CN0cWvQ9RF_PLf6HEvVYcZhqOO0nc/edit?usp=sharing
Additionally, it borrows the 'ELM' approach featured in Iced, that is, user-interactions generate messages, and the state of the application is then updated by the message handlers, instead of directly in
on_click
handlers, and then the UI updates itself based on the new state.Notes: