diff --git a/Cargo.toml b/Cargo.toml index 3df5eb66..b4064bf6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -45,6 +45,7 @@ egui_virtual_list = "0.3.0" [features] default = [] +emulate_mobile = [] profiling = ["puffin", "puffin_egui", "eframe/puffin"] [profile.small] diff --git a/preview b/preview index 6746da8b..0924a38e 100755 --- a/preview +++ b/preview @@ -1,2 +1,20 @@ #!/usr/bin/env bash -cargo run --bin ui_preview --release -- "$@" + +MOBILE_FLAG=0 +FILTERED_ARGS=() + +# Loop through the command line arguments +for arg in "$@"; do + if [[ "$arg" == "--mobile" ]]; then + MOBILE_FLAG=1 + else + # Add non '--mobile' arguments to the filtered list + FILTERED_ARGS+=("$arg") + fi +done + +if [[ "$MOBILE_FLAG" -eq 1 ]]; then + cargo run --bin ui_preview --features emulate_mobile --release -- "${FILTERED_ARGS[@]}" +else + cargo run --bin ui_preview --release -- "$@" +fi diff --git a/src/ui/mod.rs b/src/ui/mod.rs index efd57600..11db0bed 100644 --- a/src/ui/mod.rs +++ b/src/ui/mod.rs @@ -38,7 +38,13 @@ pub fn padding( } #[inline] +#[allow(unreachable_code)] pub fn is_mobile(_ctx: &egui::Context) -> bool { + #[cfg(feature = "emulate_mobile")] + { + return true; + } + #[cfg(any(target_os = "android", target_os = "ios"))] { true diff --git a/src/ui_preview/main.rs b/src/ui_preview/main.rs index 27649ae4..ce4d160a 100644 --- a/src/ui_preview/main.rs +++ b/src/ui_preview/main.rs @@ -54,14 +54,17 @@ macro_rules! previews { #[tokio::main] async fn main() { let mut name: Option = None; + + #[allow(unused_assignments)] + #[allow(unused_mut)] let mut is_mobile = false; + #[cfg(feature = "emulate_mobile")] + { + is_mobile = true + } for arg in env::args() { - if arg == "--mobile" { - is_mobile = true; - } else { - name = Some(arg); - } + name = Some(arg); } let name = if let Some(name) = name {