Consolidate button/checkbox creation #382
Open
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.
Before this PR, there are three possibilities for a Button's
checked
state:[Yes]
| About |
This only leaves space for a checkmark.
|🗹 Word Wrap
...The button only shows the provided checked state, without internal toggle logic.
Separately, there is a
checkbox()
function that partly overlaps with the button logic:[☐ Match Case]
This is not available via
ButtonStyle
[🗹 Match Case]
The checkbox automatically toggles the given
bool
parameter if activated.Note that the 'unchecked' variants of the button and checkbox are different, meaning there are four total states/styles.
Change
I have consolidated (to some degree) the checkmark-drawing code.
checked: Option<bool>
to anenum Checkmark
that now consolidates the four possible states/styles. (Absent, AlignOnly, Checked, Unchecked)checkbox()
now uses thebutton()
+ButtonStyle
, where previously most of its code was duplicated.Word Wrap
toggle is now a proper checkbox.Edit: I had also converted the OVR (overtype) indicator, but reverted it on request.
Sorry if this should have been multiple PRs, the chronological order of the changes was quite chaotic. If any of this is controversial, e.g. the
OVR
checkbox, I can revert it.