From 172115528605bacc5af3995a74ea60168f2b0d90 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Thu, 18 Nov 2021 02:09:43 -0500 Subject: refactor to potentially allow for displaying other things --- src/action.rs | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) (limited to 'src/action.rs') diff --git a/src/action.rs b/src/action.rs index 22f088e..bb8958f 100644 --- a/src/action.rs +++ b/src/action.rs @@ -4,7 +4,8 @@ pub enum Action { ForceRedraw, Run(String), UpdateFocus(crate::state::Focus), - ToggleFullscreen(usize), + UpdateScene(crate::state::Scene), + CheckUpdateScene, Resize((u16, u16)), Quit, } @@ -38,7 +39,8 @@ struct Pending { force_redraw: Option<()>, run: std::collections::VecDeque, focus: Option, - fullscreen: std::collections::VecDeque, + scene: Option, + check_scene: Option<()>, size: Option<(u16, u16)>, done: bool, } @@ -54,7 +56,8 @@ impl Pending { || self.force_redraw.is_some() || !self.run.is_empty() || self.focus.is_some() - || !self.fullscreen.is_empty() + || self.scene.is_some() + || self.check_scene.is_some() || self.size.is_some() } @@ -68,18 +71,17 @@ impl Pending { if self.focus.is_some() { return Some(Action::UpdateFocus(self.focus.take().unwrap())); } - if !self.fullscreen.is_empty() { - return Some(Action::ToggleFullscreen( - self.fullscreen.pop_front().unwrap(), - )); + if self.scene.is_some() { + return Some(Action::UpdateScene(self.scene.take().unwrap())); } - if self.force_redraw.is_some() { - self.force_redraw.take(); + if self.check_scene.take().is_some() { + return Some(Action::CheckUpdateScene); + } + if self.force_redraw.take().is_some() { self.render.take(); return Some(Action::ForceRedraw); } - if self.render.is_some() { - self.render.take(); + if self.render.take().is_some() { return Some(Action::Render); } if self.done { @@ -94,9 +96,8 @@ impl Pending { Some(Action::ForceRedraw) => self.force_redraw = Some(()), Some(Action::Run(cmd)) => self.run.push_back(cmd.to_string()), Some(Action::UpdateFocus(focus)) => self.focus = Some(*focus), - Some(Action::ToggleFullscreen(idx)) => { - self.fullscreen.push_back(*idx); - } + Some(Action::UpdateScene(scene)) => self.scene = Some(*scene), + Some(Action::CheckUpdateScene) => self.check_scene = Some(()), Some(Action::Resize(size)) => self.size = Some(*size), Some(Action::Quit) | None => self.done = true, } -- cgit v1.2.3-54-g00ecf