From 3fafda34b41615275d4ea26a5637806d7dbf6635 Mon Sep 17 00:00:00 2001 From: kernelkind Date: Mon, 13 Jan 2025 18:48:16 -0500 Subject: [PATCH] introduce ZoomHandler Signed-off-by: kernelkind --- crates/notedeck_chrome/src/persist_zoom.rs | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 crates/notedeck_chrome/src/persist_zoom.rs diff --git a/crates/notedeck_chrome/src/persist_zoom.rs b/crates/notedeck_chrome/src/persist_zoom.rs new file mode 100644 index 00000000..6242ff52 --- /dev/null +++ b/crates/notedeck_chrome/src/persist_zoom.rs @@ -0,0 +1,26 @@ +use egui::Context; +use notedeck::{DataPath, DataPathType}; + +use crate::timed_serializer::TimedSerializer; + +pub struct ZoomHandler { + serializer: TimedSerializer, +} + +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 { + self.serializer.get_item() + } +}