simplify enabled ui for if function is some

This commit is contained in:
Simon Gardling 2022-05-25 12:46:15 -04:00
parent a224ae7497
commit be86d5191e

View File

@ -117,10 +117,11 @@ impl FunctionManager {
); );
// If not fully open, return here as buttons cannot yet be displayed, therefore the user is inable to mark it for deletion // If not fully open, return here as buttons cannot yet be displayed, therefore the user is inable to mark it for deletion
if ui.ctx().animate_bool(*te_id, re.has_focus()) >= 1.0 { if ui.ctx().animate_bool(*te_id, re.has_focus()) == 1.0 {
function.autocomplete.update_string(&new_string); function.autocomplete.update_string(&new_string);
if function.autocomplete.hint.is_some() { if function.autocomplete.hint.is_some() {
// only register up and down arrow movements if hint is type `Hint::Many`
if !function.autocomplete.hint.is_single() { if !function.autocomplete.hint.is_single() {
if ui.input().key_pressed(Key::ArrowDown) { if ui.input().key_pressed(Key::ArrowDown) {
movement = Movement::Down; movement = Movement::Down;
@ -136,6 +137,7 @@ impl FunctionManager {
movement = Movement::Complete; movement = Movement::Complete;
} }
// Register movement and apply proper changes
function.autocomplete.register_movement(&movement); function.autocomplete.register_movement(&movement);
if movement != Movement::Complete && let Some(hints) = function.autocomplete.hint.many() { if movement != Movement::Complete && let Some(hints) = function.autocomplete.hint.many() {
@ -192,10 +194,10 @@ impl FunctionManager {
remove_i = Some(i); remove_i = Some(i);
} }
let func_some = function.is_some(); ui.add_enabled_ui(function.is_some(), |ui| {
// Toggle integral being enabled or not // Toggle integral being enabled or not
function.integral.bitxor_assign( function.integral.bitxor_assign(
ui.add_enabled(func_some, button_area_button("")) ui.add(button_area_button(""))
.on_hover_text(match function.integral { .on_hover_text(match function.integral {
true => "Don't integrate", true => "Don't integrate",
false => "Integrate", false => "Integrate",
@ -205,7 +207,7 @@ impl FunctionManager {
// Toggle showing the derivative (even though it's already calculated this option just toggles if it's displayed or not) // Toggle showing the derivative (even though it's already calculated this option just toggles if it's displayed or not)
function.derivative.bitxor_assign( function.derivative.bitxor_assign(
ui.add_enabled(func_some, button_area_button("d/dx")) ui.add(button_area_button("d/dx"))
.on_hover_text(match function.derivative { .on_hover_text(match function.derivative {
true => "Don't Differentiate", true => "Don't Differentiate",
false => "Differentiate", false => "Differentiate",
@ -213,8 +215,9 @@ impl FunctionManager {
.clicked(), .clicked(),
); );
// Toggle showing the settings window
function.settings_opened.bitxor_assign( function.settings_opened.bitxor_assign(
ui.add_enabled(func_some, button_area_button("")) ui.add(button_area_button(""))
.on_hover_text(match function.settings_opened { .on_hover_text(match function.settings_opened {
true => "Close Settings", true => "Close Settings",
false => "Open Settings", false => "Open Settings",
@ -223,6 +226,7 @@ impl FunctionManager {
); );
}); });
}); });
});
} }
function.settings_window(ui.ctx()); function.settings_window(ui.ctx());