Add different selection modes to Calendar (Single, Multi, Range) #66
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.
This PR adds different modes of selection to the calendar.
This is the same as the current mode. Only one date can be selected at once.
Multiple random dates can be selected at the same time
Select a beginning and end to select all dates in between those dates.
To achieve this change some compatibility breaking changes had to be made:
SelectedDates
field has beend added to the calendar structHere all dates that the user will select are stored no matter what mode has been chosen. This can also be freely manipulated as it is an exported field. When calling
Refresh
the display is updated.OnSelected
has been replaced byOnChanged
OnChanged
has been added as a callback for the new modesThe
OnChanged
callback is now called everytime the user presses a button and the selected dates are changed. WhileOnSelected
is called with the clicked date if the date is part of the selected dates.Since there isn't another way to give buttons custom colors right now. I used the Importance system to signal the user which dates have been selected. And if a button is not selected it uses the previous LowImportance.
This also takes care of #54