From 82b69bd6b961f2ca1e6067e7df4835be8f10256c Mon Sep 17 00:00:00 2001 From: Ruben van de Ven Date: Thu, 3 Jul 2025 14:14:18 +0200 Subject: [PATCH] online indicator --- src/bin/render_lines_gui.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/bin/render_lines_gui.rs b/src/bin/render_lines_gui.rs index ca196fa..3fe8124 100644 --- a/src/bin/render_lines_gui.rs +++ b/src/bin/render_lines_gui.rs @@ -393,7 +393,6 @@ fn laser_frame_producer(model: &mut LaserModel, frame: &mut laser::Frame){ // println!("Cropped Points {} (was: {})", new_laser_points.len(), pointno); // } - frame.add_lines(new_laser_points); return; } @@ -628,12 +627,19 @@ fn update(_app: &App, model: &mut GuiModel, update: Update) { ); for (dac_id, _config) in per_laser_config.iter() { + let is_available = laser_streams.contains_key(&dac_id); + ui.style_mut().visuals.override_text_color = if is_available {Some(egui::Color32::RED)} else {None}; + ui.style_mut().visuals.widgets.inactive.bg_stroke = if is_available {egui::Stroke::new(2.0, egui::Color32::RED)} else {egui::Stroke::NONE}; + let name = if let Some(config) = per_laser_config.get(&dac_id) { config.name.clone() } else { "DAC".into() }; + let indicator = if is_available{"*"}else{""}; ui.selectable_value( selected_stream, Some(dac_id.clone()), - if let Some(config) = per_laser_config.get(&dac_id) { config.name.clone() } else { "DAC".into() } + format!("{name}{indicator}") ); } + // reset + ui.style_mut().visuals.override_text_color = None; }); }