Files
notedeck/crates/notedeck_chrome/src/setup.rs
William Casarin dac786e60f chrome: remove duplication in app setup
Also move debug warning to chrome so that headless
notedeck apps don't hit that.
2025-07-31 17:07:51 -07:00

54 lines
1.7 KiB
Rust

use eframe::NativeOptions;
use notedeck::{AppSizeHandler, DataPath};
use notedeck_ui::app_images;
pub fn generate_native_options(paths: DataPath) -> NativeOptions {
let window_builder = Box::new(move |builder: egui::ViewportBuilder| {
let builder = builder
.with_fullsize_content_view(true)
.with_titlebar_shown(false)
.with_title_shown(false)
.with_icon(std::sync::Arc::new(app_images::app_icon()));
if let Some(window_size) = AppSizeHandler::new(&paths).get_app_size() {
builder.with_inner_size(window_size)
} else {
builder
}
});
eframe::NativeOptions {
// for 3d widgets
depth_buffer: 24,
window_builder: Some(window_builder),
viewport: egui::ViewportBuilder::default()
.with_icon(std::sync::Arc::new(app_images::app_icon())),
..Default::default()
}
}
fn generate_native_options_with_builder_modifiers(
apply_builder_modifiers: fn(egui::ViewportBuilder) -> egui::ViewportBuilder,
) -> NativeOptions {
let window_builder =
Box::new(move |builder: egui::ViewportBuilder| apply_builder_modifiers(builder));
eframe::NativeOptions {
// for 3d widgets
depth_buffer: 24,
window_builder: Some(window_builder),
..Default::default()
}
}
pub fn generate_mobile_emulator_native_options() -> eframe::NativeOptions {
generate_native_options_with_builder_modifiers(|builder| {
builder
.with_fullsize_content_view(true)
.with_titlebar_shown(false)
.with_title_shown(false)
.with_inner_size([405.0, 915.0])
.with_icon(app_images::app_icon())
})
}