From 587b81c69e3fdf64f4128d2756321a0d3e4f613e Mon Sep 17 00:00:00 2001 From: Arthur Roberts Date: Fri, 16 Jun 2023 17:56:40 +0100 Subject: [PATCH] Added a delete symbol Just testing it out --- src/main.rs | 53 ++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 36 insertions(+), 17 deletions(-) diff --git a/src/main.rs b/src/main.rs index b1c1bef..ae3ce78 100644 --- a/src/main.rs +++ b/src/main.rs @@ -213,17 +213,26 @@ impl eframe::App for RustDoomLauncher { ui.horizontal_wrapped(|ui| { ui.vertical(|ui| { ui.label("Launchers"); + let mut remove_pos: Option = None; for (pos, launcher) in self.all_launchers.iter().enumerate() { - if ui - .add(egui::SelectableLabel::new( - self.selected_launcher.is_some() - && *self.selected_launcher.as_ref().unwrap() == pos, - &launcher.name, - )) - .clicked() - { - self.selected_launcher = Some(pos); - } + ui.horizontal(|ui| { + if ui + .add(egui::SelectableLabel::new( + self.selected_launcher.is_some() + && *self.selected_launcher.as_ref().unwrap() == pos, + &launcher.name, + )) + .clicked() + { + self.selected_launcher = Some(pos); + } + if ui.button("❌").clicked() { + remove_pos = Some(pos); + } + }); + } + if let Some(rp) = remove_pos { + self.all_launchers.remove(rp); } }); ui.separator(); @@ -248,15 +257,25 @@ impl eframe::App for RustDoomLauncher { ui.set_min_width(100.0); ui.label("PWADs"); for (pos, pwad) in self.all_pwads.iter().enumerate() { - if ui - .add(egui::SelectableLabel::new( - self.selected_pwads.contains(&pos), - &pwad.name, - )) - .clicked() - { + let pwad_label = egui::SelectableLabel::new( + self.selected_pwads.contains(&pos), + &pwad.name, + ); + /* + let tmp = ui.add(pwad_label); + let click_response = tmp.interact(egui::Sense::click()); + let right_click_response = tmp.interact(egui::Sense::secondary_click()); + */ + if ui.add(pwad_label).clicked() { self.selected_pwads.push(pos); } + /* + TODO - no idea how this works + if ui.add(pwad_label).secondary_clicked() { + self.all_pwads.remove(pos); + continue; + } + */ } }); });