summaryrefslogtreecommitdiff
path: root/rust/src/interaction/form.rs
diff options
context:
space:
mode:
Diffstat (limited to 'rust/src/interaction/form.rs')
-rw-r--r--rust/src/interaction/form.rs14
1 files changed, 14 insertions, 0 deletions
diff --git a/rust/src/interaction/form.rs b/rust/src/interaction/form.rs
index 06799681..53549bf3 100644
--- a/rust/src/interaction/form.rs
+++ b/rust/src/interaction/form.rs
@@ -112,6 +112,11 @@ pub enum FormInputField {
default: Option<String>,
value: Option<String>,
},
+ Checkbox {
+ prompt: String,
+ default: Option<bool>,
+ value: bool,
+ },
}
impl FormInputField {
@@ -130,6 +135,7 @@ impl FormInputField {
let int_default = value.hasDefault.then_some(value.intDefault);
let address_default = value.hasDefault.then_some(value.addressDefault);
let index_default = value.hasDefault.then_some(value.indexDefault);
+ let bool_default = value.hasDefault.then_some(value.intResult != 0);
let extension = raw_to_string(value.ext);
let current_address = value.currentAddress;
let string_result = raw_to_string(value.stringResult);
@@ -186,6 +192,11 @@ impl FormInputField {
default: string_default,
value: string_result,
},
+ BNFormInputFieldType::CheckboxFormField => Self::Checkbox {
+ prompt,
+ default: bool_default,
+ value: value.intResult != 0,
+ },
}
}
@@ -258,6 +269,7 @@ impl FormInputField {
FormInputField::OpenFileName { .. } => BNFormInputFieldType::OpenFileNameFormField,
FormInputField::SaveFileName { .. } => BNFormInputFieldType::SaveFileNameFormField,
FormInputField::DirectoryName { .. } => BNFormInputFieldType::DirectoryNameFormField,
+ FormInputField::Checkbox { .. } => BNFormInputFieldType::CheckboxFormField,
}
}
@@ -274,6 +286,7 @@ impl FormInputField {
FormInputField::OpenFileName { prompt, .. } => Some(prompt.clone()),
FormInputField::SaveFileName { prompt, .. } => Some(prompt.clone()),
FormInputField::DirectoryName { prompt, .. } => Some(prompt.clone()),
+ FormInputField::Checkbox { prompt, .. } => Some(prompt.clone()),
}
}
@@ -325,6 +338,7 @@ impl FormInputField {
FormInputField::OpenFileName { default, .. } => Some(default.is_some()),
FormInputField::SaveFileName { default, .. } => Some(default.is_some()),
FormInputField::DirectoryName { default, .. } => Some(default.is_some()),
+ FormInputField::Checkbox { default, .. } => Some(default.is_some()),
}
}