setup.rs (1744B)
1 use eframe::NativeOptions; 2 use notedeck::{AppSizeHandler, DataPath}; 3 use notedeck_ui::app_images; 4 5 pub fn generate_native_options(paths: DataPath) -> NativeOptions { 6 let window_builder = Box::new(move |builder: egui::ViewportBuilder| { 7 let builder = builder 8 .with_fullsize_content_view(true) 9 .with_titlebar_shown(false) 10 .with_title_shown(false) 11 .with_icon(std::sync::Arc::new(app_images::app_icon())); 12 13 if let Some(window_size) = AppSizeHandler::new(&paths).get_app_size() { 14 builder.with_inner_size(window_size) 15 } else { 16 builder 17 } 18 }); 19 20 eframe::NativeOptions { 21 // for 3d widgets 22 depth_buffer: 24, 23 window_builder: Some(window_builder), 24 viewport: egui::ViewportBuilder::default() 25 .with_icon(std::sync::Arc::new(app_images::app_icon())), 26 ..Default::default() 27 } 28 } 29 30 fn generate_native_options_with_builder_modifiers( 31 apply_builder_modifiers: fn(egui::ViewportBuilder) -> egui::ViewportBuilder, 32 ) -> NativeOptions { 33 let window_builder = 34 Box::new(move |builder: egui::ViewportBuilder| apply_builder_modifiers(builder)); 35 36 eframe::NativeOptions { 37 // for 3d widgets 38 depth_buffer: 24, 39 window_builder: Some(window_builder), 40 ..Default::default() 41 } 42 } 43 44 pub fn generate_mobile_emulator_native_options() -> eframe::NativeOptions { 45 generate_native_options_with_builder_modifiers(|builder| { 46 builder 47 .with_fullsize_content_view(true) 48 .with_titlebar_shown(false) 49 .with_title_shown(false) 50 .with_inner_size([405.0, 915.0]) 51 .with_icon(app_images::app_icon()) 52 }) 53 }