Implement Horizontal Layouts #180
Merged
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.
Implement horizontal layouts for livesplit-core.
There's a few changes in how they work compared to the original LiveSplit. In the original LiveSplit we simply flipped the logic between the two axes. This doesn't work well in practice though, as text always flows horizontally and it is the main problem when it comes to the layout. Text can't arbitrarily be shaped, and cutting it off (or even abbreviating it) loses valuable information. Therefore the livesplit-core port pursues a different strategy, a more hybrid approach between both layout directions. Essentially the height of the window now similar to how it works in vertical mode, merely influences the resolution of the content. Increasing the height doesn't introduce any additional spacing, the content is just adjusted to fit the height chosen. Instead the width now, similar to how it works in vertical mode, decides on how wide to render the components. If text doesn't fit, it needs to be cut off. But this way now allows the user to widen the window to show more text, while the horizontal mode in the original LiveSplit always showed the same amount of text, as it always chose the same component space width, regardless of the aspect ratio or other influences.
Roadmap:
Resolves #173