Dynamically resizing UI?
Does/will the UI support scaling for different aspect ratios?
edited January 21
I'm presently rebuilding the game "template" GUI (the selection and navigation panels)
and moving them out of the core ivoyager submodule and into the ivoyager_project_template repository (in the "replace_me" template directory)
. [Edit: these are now in directory ivoyager/gui_example/]
It seems likely to me that any game developer will design their own GUI from scratch anyway. The template GUIs are still educational for how to hook up to ivoyager core systems and how to use existing GUI widgets (which stay in the core submodule ivoyager/gui_widgets directory).
They need recoding because I created these 2 yrs ago when I didn't understand Godot scene structure or Control nodes. The new "template" GUIs will be simpler and should do a better job fitting their contents and the screen size, using Godot mechanisms rather than my own code.
GUI for both the Template and the Planetarium are much more dynamic now. Now that I understand Godot scenes and Controls, I'm no longer adding code that fights with the engine internal systems.
See comments in the
. Here's part of it:
A new directory (ivoyager/gui_mods/) includes drag-and-drop components that modify GUI operation:
ContainerSized - Can be added to a PanelContainer to provide resize when user changes Options/GUI Size. Used in Project Template.
ContainerDraggable - Replaces above; provides above function and makes panel draggable (has settable snap settings). Used in Planetarium.
ContainerDynamic - Replaces above; provides above function and makes panel user-resizable via margin drag.
PanelLockVisibleCkbx - Allows panel to hide when mouse is not over or near it. A checkbox allows the user to lock it in visible state. Used in Planetarium.
ProjectCyclablePanels - Allows a key action to cycle-through panels, making them visible (if hidden due to mod above) and grabbing focus. Used in Planetarium.