cloud_terrastodon_ui_egui 0.35.0

User interface for the Cloud Terrastodon project leveraging egui
use crate::app::MyApp;
use eframe::egui::Context;
use eframe::egui::Id;
use eframe::egui::Ui;
use eframe::egui::Window;
use std::path::Path;

pub fn ui_dir_windows(app: &mut MyApp, ctx: &Context) {
    for (dir, rect) in app.egui_config.open_dirs.clone().into_iter() {
        let title = format!("{}", dir.display());
        let window_id = Id::new(&title);
        let mut open = true;
        Window::new(title)
            .id(window_id)
            .default_rect(rect)
            .open(&mut open)
            .collapsible(true)
            .show(ctx, |ui| {
                ui_dir_window_body(app, ctx, ui, &dir);
            });
        if !open {
            app.egui_config.open_dirs.remove(&dir).unwrap();
        } else if let Some(window_area) = ctx.memory(|mem| mem.area_rect(window_id)) {
            app.egui_config.open_dirs.insert(dir, window_area);
        }
    }
}

pub fn ui_dir_window_body(_app: &mut MyApp, _ctx: &Context, ui: &mut Ui, _dir: &Path) {
    ui.label("bruh");
}