1
0
Fork 0
mirror of https://github.com/jugeeya/UltimateTrainingModpack.git synced 2025-03-22 14:26:11 +00:00

Single Option Menu (#231)

* add flag

* Update clickToggle() to handle single-option submenus (#232)

Co-authored-by: asimon-1 <asimon1@protonmail.com>

Co-authored-by: asimon-1 <40246417+asimon-1@users.noreply.github.com>
Co-authored-by: asimon-1 <asimon1@protonmail.com>
This commit is contained in:
jugeeya 2021-08-16 17:09:51 -07:00 committed by GitHub
parent a4533a4810
commit 841ea5e8fe
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 7 deletions

View file

@ -39,7 +39,8 @@ struct SubMenu<'a> {
sliders: Vec<Slider>, sliders: Vec<Slider>,
onoffselector: Vec<OnOffSelector<'a>>, onoffselector: Vec<OnOffSelector<'a>>,
index: usize, index: usize,
check_against: usize check_against: usize,
is_single_option: Option<bool>
} }
impl<'a> SubMenu<'a> { impl<'a> SubMenu<'a> {
@ -103,7 +104,8 @@ impl<'a> Menu<'a> {
sliders: Vec::new(), sliders: Vec::new(),
onoffselector: Vec::new(), onoffselector: Vec::new(),
index: self.max_idx() + 1, index: self.max_idx() + 1,
check_against check_against,
is_single_option: Some(true)
}; };
for toggle in toggles { for toggle in toggles {
@ -125,7 +127,8 @@ impl<'a> Menu<'a> {
sliders: Vec::new(), sliders: Vec::new(),
onoffselector: Vec::new(), onoffselector: Vec::new(),
index: self.max_idx() + 1, index: self.max_idx() + 1,
check_against check_against,
is_single_option: None
}; };
for i in 0..strs.len() { for i in 0..strs.len() {
@ -145,7 +148,8 @@ impl<'a> Menu<'a> {
sliders: Vec::new(), sliders: Vec::new(),
onoffselector: Vec::new(), onoffselector: Vec::new(),
index: self.max_idx() + 1, index: self.max_idx() + 1,
check_against check_against,
is_single_option: None
}; };
sub_menu.add_onoffselector(title, checked, (default & OnOff::On as usize) != 0); sub_menu.add_onoffselector(title, checked, (default & OnOff::On as usize) != 0);

View file

@ -155,7 +155,7 @@
<div class="keyword-button-outer"> <div class="keyword-button-outer">
<a tabindex="{{index}}" class="flex-button keyword-button scuffle-thema" href="javascript:void(0)" onclick="clickToggle(this);" nx-se-disabled=""> <a tabindex="{{index}}" class="flex-button keyword-button scuffle-thema" href="javascript:void(0)" onclick="clickToggle(this);" nx-se-disabled="">
<div class="button-icon-wrapper"> <div class="button-icon-wrapper">
<img class="button-icon toggle {{checked}}" ref="./check.svg" src="./check.svg" default="{{default}}"> <img class="button-icon toggle {{checked}} {{#is_single_option}}is-single-option{{/is_single_option}}" ref="./check.svg" src="./check.svg" default="{{default}}">
</div> </div>
<div class="button-msg-wrapper"> <div class="button-msg-wrapper">
<div class="keyword-message f-u-bold"> <div class="keyword-message f-u-bold">
@ -316,8 +316,18 @@
} }
function clickToggle(e) { function clickToggle(e) {
$(e).find(".toggle").toggleClass("is-appear"); var toggleOptions = $(e).find(".toggle");
$(e).find(".toggle").toggleClass("is-hidden"); if ($(e).find(".is-single-option").length) { // Single-option submenu
// Deselect all submenu options
$(e).closest(".l-qa").find(".toggle").removeClass("is-appear");
$(e).closest(".l-qa").find(".toggle").addClass("is-hidden");
// Then set the current one as the active setting
toggleOptions.addClass("is-appear");
toggleOptions.removeClass("is-hidden");
} else { // Multi-option submenu
toggleOptions.toggleClass("is-appear");
toggleOptions.toggleClass("is-hidden");
}
} }
function getParams(url) { function getParams(url) {