egui-baseview 0.7.0

A baseview backend for egui
Documentation
use egui::CentralPanel;
use egui_baseview::{EguiWindow, EguiWindowSettings, baseview::dpi::LogicalSize};

const WINDOW_SIZE: LogicalSize<f32> = LogicalSize::new(300.0, 250.0);
const MIN_WINDOW_SIZE: LogicalSize<f32> = LogicalSize::new(200.0, 150.0);

fn main() {
    EguiWindow::create(
        EguiWindowSettings::new()
            .with_title("egui-baseview zoom factor")
            .with_size(WINDOW_SIZE)
            .with_min_size::<LogicalSize<f32>>(Some(MIN_WINDOW_SIZE))
            .with_resizable(true),
        MyApp { zoom_factor: 1.0 },
    )
    .unwrap()
    .run_until_closed()
    .unwrap();
}

struct MyApp {
    zoom_factor: f32,
}

impl egui_baseview::App for MyApp {
    fn ui(&mut self, ui: &mut egui::Ui, _frame: &mut egui_baseview::Frame) {
        CentralPanel::default().show(ui, |ui| {
            ui.label("Zoomin'!");

            let before = self.zoom_factor;
            egui::ComboBox::from_label("zoom factor")
                .selected_text(format!("{}%", (self.zoom_factor * 100.0).round() as u32))
                .show_ui(ui, |ui| {
                    ui.selectable_value(&mut self.zoom_factor, 0.5, "50%");
                    ui.selectable_value(&mut self.zoom_factor, 0.75, "75%");
                    ui.selectable_value(&mut self.zoom_factor, 1.0, "100%");
                    ui.selectable_value(&mut self.zoom_factor, 1.25, "125%");
                    ui.selectable_value(&mut self.zoom_factor, 1.5, "150%");
                    ui.selectable_value(&mut self.zoom_factor, 1.75, "175%");
                    ui.selectable_value(&mut self.zoom_factor, 2.0, "200%");
                });
            if self.zoom_factor != before {
                ui.set_zoom_factor(self.zoom_factor);
            }
        });
    }
}