feat: animate cursor to playback range end and allow custom cursor handlers #2536
+601
−119
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.
Issues
Fixes #2515
Proposed changes
The first change in this PR is to animate cursors to the end of their respective "real position" which deprecates the "end of bar". This allows a more consistent behavior in the different scenarios.
Next is that we use the "animate to end of beat" mode when the "next beat" is outside the selected playback range ensuring the cursor will not go beyond the selected range.
Last this PR allows fully custom cursor handlers via
ICursorHandlerimplementations. This should allow any customizations that users would want to do to the cursor (e.g. having additional adorners or adjusting the built-in element position). The API is tightly coupled to the internal alphaTab behavior but should allow everything needed.Checklist
Further details