summaryrefslogtreecommitdiffstats
path: root/src/action.rs
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2021-11-18 02:09:43 -0500
committerJesse Luehrs <doy@tozt.net>2021-11-18 02:09:43 -0500
commit172115528605bacc5af3995a74ea60168f2b0d90 (patch)
tree40abd948830ca188d4e5b190ea3e2e44141e0fe3 /src/action.rs
parent04068bf2ad233748af1ac98edb12a27bf8ffca75 (diff)
downloadnbsh-172115528605bacc5af3995a74ea60168f2b0d90.tar.gz
nbsh-172115528605bacc5af3995a74ea60168f2b0d90.zip
refactor to potentially allow for displaying other things
Diffstat (limited to 'src/action.rs')
-rw-r--r--src/action.rs29
1 files changed, 15 insertions, 14 deletions
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<String>,
focus: Option<crate::state::Focus>,
- fullscreen: std::collections::VecDeque<usize>,
+ scene: Option<crate::state::Scene>,
+ 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,
}