notedeck

One damus client to rule them all
git clone git://jb55.com/notedeck
Log | Files | Refs | README | LICENSE

icons.rs (1027B)


      1 use egui::{vec2, Color32, Stroke};
      2 
      3 /// Creates a magnifying glass icon widget
      4 pub fn search_icon(size: f32, height: f32) -> impl egui::Widget {
      5     move |ui: &mut egui::Ui| {
      6         // Use the provided height parameter
      7         let desired_size = vec2(size, height);
      8         let (rect, response) = ui.allocate_exact_size(desired_size, egui::Sense::hover());
      9 
     10         // Calculate center position - this ensures the icon is centered in its allocated space
     11         let center_pos = rect.center();
     12         let stroke = Stroke::new(1.5, Color32::from_rgb(150, 150, 150));
     13 
     14         // Draw circle
     15         let circle_radius = size * 0.35;
     16         ui.painter()
     17             .circle(center_pos, circle_radius, Color32::TRANSPARENT, stroke);
     18 
     19         // Draw handle
     20         let handle_start = center_pos + vec2(circle_radius * 0.7, circle_radius * 0.7);
     21         let handle_end = handle_start + vec2(size * 0.25, size * 0.25);
     22         ui.painter()
     23             .line_segment([handle_start, handle_end], stroke);
     24 
     25         response
     26     }
     27 }