use crate::core::theme::ThemeRef; use crate::global; use parking_lot::RwLock; use std::sync::LazyLock; // TEMAS ******************************************************************************************* pub static THEMES: LazyLock>> = LazyLock::new(|| RwLock::new(Vec::new())); // TEMA PREDETERMINADO ***************************************************************************** pub static DEFAULT_THEME: LazyLock = LazyLock::new(|| match theme_by_short_name(&global::SETTINGS.app.theme) { Some(theme) => theme, None => &crate::base::theme::Basic, }); // TEMA POR NOMBRE ********************************************************************************* /// Devuelve el tema identificado por su [`short_name`](AnyInfo::short_name). pub fn theme_by_short_name(short_name: &'static str) -> Option { let short_name = short_name.to_lowercase(); match THEMES .read() .iter() .find(|t| t.short_name().to_lowercase() == short_name) { Some(theme) => Some(*theme), _ => None, } }