This repository has been archived by the owner on Dec 22, 2023. It is now read-only.
Experiment: Let wx.ScrolledView handle scrolling to enable horizontal scrolling #72
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.
In order to enable zooming (#20), we need to implement horizontal scrolling first.
Currently, scrolling is implemented by saving the first line to be displayed (called
topLine
) on the Screenplay object. The rendering code always renders the page beginning with that line until the screen is filled. So you just need to change the currenttopLine
to make the page scroll. This is what all scrolling-related code does currently.Opposed to that, the wx.ScrolledWindow knows the size of its child and its own size and implements scrolling automatically based on that. It saves the current scroll position internally (based on pixels). This allows it to reuse a lot of the implementation from the native toolkits (e. g. Gtk), which gives us goodies as:
Unsolved problems
Trelby's implementation relies heavily on the current line-based scrolling. Unsolved problems include (and might not be limited to):
Because of these reasons, I'm not sure if I will ever finish this. But I wanted to share this anyway.