use super::density::Density;
use super::locale::Locale;
use super::palette::Palette;
fn palette_id() -> egui::Id {
egui::Id::new("egui_sauge::palette")
}
fn density_id() -> egui::Id {
egui::Id::new("egui_sauge::density")
}
fn locale_id() -> egui::Id {
egui::Id::new("egui_sauge::locale")
}
fn reduce_motion_id() -> egui::Id {
egui::Id::new("egui_sauge::reduce_motion")
}
pub(crate) fn store(ctx: &egui::Context, palette: &Palette, density: Density) {
ctx.data_mut(|d| {
d.insert_temp(palette_id(), *palette);
d.insert_temp(density_id(), density);
});
}
pub fn palette_of(ctx: &egui::Context) -> Palette {
ctx.data(|d| d.get_temp::<Palette>(palette_id()))
.unwrap_or_else(Palette::light)
}
pub fn density_of(ctx: &egui::Context) -> Density {
ctx.data(|d| d.get_temp::<Density>(density_id()))
.unwrap_or_default()
}
pub fn locale_of(ctx: &egui::Context) -> Locale {
ctx.data(|d| d.get_temp::<Locale>(locale_id()))
.unwrap_or_default()
}
pub fn set_locale(ctx: &egui::Context, locale: Locale) {
ctx.data_mut(|d| d.insert_temp(locale_id(), locale));
}
pub fn reduce_motion(ctx: &egui::Context) -> bool {
ctx.data(|d| d.get_temp::<bool>(reduce_motion_id()))
.unwrap_or(false)
}
pub fn set_reduce_motion(ctx: &egui::Context, on: bool) {
ctx.data_mut(|d| d.insert_temp(reduce_motion_id(), on));
}