diff --git a/examples/file_dialog/src/main.rs b/examples/file_dialog/src/main.rs index 2d9eff43..a7d0e1de 100644 --- a/examples/file_dialog/src/main.rs +++ b/examples/file_dialog/src/main.rs @@ -60,40 +60,7 @@ impl eframe::App for MyApp { } }); - self.detect_files_being_dropped(ctx); - } -} - -impl MyApp { - fn detect_files_being_dropped(&mut self, ctx: &egui::Context) { - use egui::*; - - // Preview hovering files: - if !ctx.input().raw.hovered_files.is_empty() { - let mut text = "Dropping files:\n".to_owned(); - for file in &ctx.input().raw.hovered_files { - if let Some(path) = &file.path { - text += &format!("\n{}", path.display()); - } else if !file.mime.is_empty() { - text += &format!("\n{}", file.mime); - } else { - text += "\n???"; - } - } - - let painter = - ctx.layer_painter(LayerId::new(Order::Foreground, Id::new("file_drop_target"))); - - let screen_rect = ctx.input().screen_rect(); - painter.rect_filled(screen_rect, 0.0, Color32::from_black_alpha(192)); - painter.text( - screen_rect.center(), - Align2::CENTER_CENTER, - text, - TextStyle::Heading.resolve(&ctx.style()), - Color32::WHITE, - ); - } + preview_files_being_dropped(ctx); // Collect dropped files: if !ctx.input().raw.dropped_files.is_empty() { @@ -101,3 +68,34 @@ impl MyApp { } } } + +/// Preview hovering files: +fn preview_files_being_dropped(ctx: &egui::Context) { + use egui::*; + + if !ctx.input().raw.hovered_files.is_empty() { + let mut text = "Dropping files:\n".to_owned(); + for file in &ctx.input().raw.hovered_files { + if let Some(path) = &file.path { + text += &format!("\n{}", path.display()); + } else if !file.mime.is_empty() { + text += &format!("\n{}", file.mime); + } else { + text += "\n???"; + } + } + + let painter = + ctx.layer_painter(LayerId::new(Order::Foreground, Id::new("file_drop_target"))); + + let screen_rect = ctx.input().screen_rect(); + painter.rect_filled(screen_rect, 0.0, Color32::from_black_alpha(192)); + painter.text( + screen_rect.center(), + Align2::CENTER_CENTER, + text, + TextStyle::Heading.resolve(&ctx.style()), + Color32::WHITE, + ); + } +}