mirror of
https://github.com/aljazceru/notedeck.git
synced 2026-01-23 02:04:21 +01:00
Signed-off-by: kernelkind <kernelkind@gmail.com> Signed-off-by: William Casarin <jb55@jb55.com>
59 lines
1.7 KiB
Rust
59 lines
1.7 KiB
Rust
use crate::app::is_mobile;
|
|
use crate::app_style::{create_text_styles, dark_mode, desktop_font_size, mobile_font_size};
|
|
use crate::fonts::setup_fonts;
|
|
use eframe::NativeOptions;
|
|
|
|
pub const UI_SCALE_FACTOR: f32 = 0.2;
|
|
|
|
pub fn generate_native_options() -> NativeOptions {
|
|
generate_native_options_with_builder_modifiers(|builder| {
|
|
builder
|
|
.with_fullsize_content_view(true)
|
|
.with_titlebar_shown(false)
|
|
.with_title_shown(false)
|
|
.with_min_inner_size([
|
|
660.0 * (1.0 + UI_SCALE_FACTOR),
|
|
720.0 * (1.0 + UI_SCALE_FACTOR),
|
|
])
|
|
})
|
|
}
|
|
|
|
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 {
|
|
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])
|
|
})
|
|
}
|
|
|
|
pub fn setup_cc(cc: &eframe::CreationContext<'_>) {
|
|
let ctx = &cc.egui_ctx;
|
|
setup_fonts(ctx);
|
|
|
|
ctx.set_pixels_per_point(ctx.pixels_per_point() + UI_SCALE_FACTOR);
|
|
|
|
egui_extras::install_image_loaders(ctx);
|
|
|
|
ctx.set_visuals(dark_mode());
|
|
|
|
ctx.set_style(if is_mobile(ctx) {
|
|
create_text_styles(ctx, mobile_font_size)
|
|
} else {
|
|
create_text_styles(ctx, desktop_font_size)
|
|
});
|
|
}
|