Files
notedeck/crates/notedeck_chrome/src/persist_zoom.rs
kernelkind 3fafda34b4 introduce ZoomHandler
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-01-13 18:48:16 -05:00

27 lines
647 B
Rust

use egui::Context;
use notedeck::{DataPath, DataPathType};
use crate::timed_serializer::TimedSerializer;
pub struct ZoomHandler {
serializer: TimedSerializer<f32>,
}
impl ZoomHandler {
pub fn new(path: &DataPath) -> Self {
let serializer =
TimedSerializer::new(path, DataPathType::Setting, "zoom_level.json".to_owned());
Self { serializer }
}
pub fn try_save_zoom_factor(&mut self, ctx: &Context) {
let cur_zoom_level = ctx.zoom_factor();
self.serializer.try_save(cur_zoom_level);
}
pub fn get_zoom_factor(&self) -> Option<f32> {
self.serializer.get_item()
}
}