notedeck

One damus client to rule them all
git clone git://jb55.com/notedeck
Log | Files | Refs | README | LICENSE

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 }