OptionContainers in Toga in regards to usage in small sections vs. top-level structure #4059
Replies: 1 comment 5 replies
-
|
I think I can see the sort of distinction you're making here. My immediate question: Have you identified different widget, or different ways to render the same widget? Are all of these OptionContainer - but if OptionContainer is the content of a MainWindow on macOS, it's rendered like the world clock example. If it's the content of a SplitContainer, it's rendered Gnome NewsFlash; otherwise, it's the "tabs" as currently defined. Whether any of these alternatives are possible at all will depend on what any given platform provides - the current "tab" implementation works; but we can enhance it over time if there are other options. However, the meta-question I'd like to pose before we dive too deeply: Does this matter? Toga is, ultimately, a cross-platform GUI abstraction framework, and all abstractions leak. It will not be possible to define all apps that might be possible on any single platform. And that's OK. We should aspire to make as many apps possible as possible; but just because something is possible on one specific platform doesn't mean we have to wrap it - certainly not at this point in Toga's development where there is a lot of much bigger fish to fry. Issues like settings management, login workflows, and navigation control strike me as much more significant problems to resolve right now, because there are specific applications that can't (or can't easily) be built. Unless there's a specific use case motivating this for you, I'd suggest that those more foundational problems should be our focus, rather than trying to solve problems that we don't actually have because the theoretically exist. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Toga needs to represent in some way top-level navigation of multiple distinct parts of the app, aka. a bottom bar, and related but separate nonsequential content in one part / area of the app.
The distinction is that the top-level navigation optioncontainers are usually placed as a bigger bar on the bottom of the window, but the option containers for navigation in small sections has a tab chrome and some kind of frame instead of a just a bar.
As a concrete example before I get to specific examples, here's a mockup where the OptionContainer is used in a small section of the application:
On the other hand, if the same kind of styling for hte OptionContainer is used to represent distinct parts of the app as a top-level structure, it would look like this:
which would look kind of jarring because there's already a window frame, and the options have another frame. But if we instead do this:
or this:
it would look much better.
Multiple distinct parts of the app as top-level navigation form:
macOS clock app:
iOS News app:
KDE Alligator:
GNOME NewsFlash:
Android bottom layout (current impl in Toga):
Navigation between related options in a specific part of the app:
iOS -- mail app when searching, all/current mailbox options can display differnet content:
Android -- example from Material Design 3 guidelines -- the tabs are in a specific area rather than top-level of the app:
macOS -- Toga Demo -- tabs are specific to left part of app:
Qt:
Winforms:
Beta Was this translation helpful? Give feedback.
All reactions