From 47fd9de549de71ea7b75cfd273d49e4f243411de Mon Sep 17 00:00:00 2001 From: unspeaker Date: Sun, 29 Sep 2024 00:59:24 +0300 Subject: [PATCH] sequencer: merge toolbar components --- crates/tek_sequencer/src/lib.rs | 4 +- crates/tek_sequencer/src/sequencer.rs | 78 ++++++++------------------- 2 files changed, 22 insertions(+), 60 deletions(-) diff --git a/crates/tek_sequencer/src/lib.rs b/crates/tek_sequencer/src/lib.rs index 4047b576..17e39c06 100644 --- a/crates/tek_sequencer/src/lib.rs +++ b/crates/tek_sequencer/src/lib.rs @@ -6,6 +6,4 @@ pub(crate) use tek_core::midly::{num::u7, live::LiveEvent, MidiMessage}; pub(crate) use tek_core::jack::*; pub(crate) use std::sync::{Arc, RwLock}; -submod! { - sequencer -} +submod! { sequencer } diff --git a/crates/tek_sequencer/src/sequencer.rs b/crates/tek_sequencer/src/sequencer.rs index ec720ff4..3b7125ec 100644 --- a/crates/tek_sequencer/src/sequencer.rs +++ b/crates/tek_sequencer/src/sequencer.rs @@ -1334,10 +1334,27 @@ impl Content for Sequencer { type Engine = Tui; fn content (&self) -> impl Widget { let toolbar = col!( - SequenceName(&self), - SequenceRange, - SequenceLoopRange, - SequenceNoteRange, + col! { "Name" + , self.name.read().unwrap().as_str(), + }.min_xy(10, 4), + + col! { "Start: ", " 1.1.1" + , "End: ", " 2.1.1", + }.min_xy(10, 6), + + col! { "Loop [ ]" + , "From: ", " 1.1.1" + , "Length: ", " 1.0.0", + }.min_xy(10, 7), + + col! { "Notes: " + , "C#0-C#9 " + , "[ /2 ]" + , "[ x2 ]" + , "[ Rev ]" + , "[ Inv ]" + , "[ Dup ]" + }.min_xy(10, 9), ); let content = lay!( SequenceKeys(&self).fill_y(), @@ -1541,59 +1558,6 @@ pub(crate) fn keys_vert () -> Buffer { /////////////////////////////////////////////////////////////////////////////////////////////////// -struct SequenceName<'a>(&'a Sequencer); -impl<'a> Content for SequenceName<'a> { - type Engine = Tui; - fn content (&self) -> impl Widget { - col! { "Name", self.0.name.read().unwrap().as_str(), }.min_xy(10, 4) - } -} - -/////////////////////////////////////////////////////////////////////////////////////////////////// - -struct SequenceRange; -impl Content for SequenceRange { - type Engine = Tui; - fn content (&self) -> impl Widget { - col! { "Start: ", " 1.1.1" - , "End: ", " 2.1.1", }.min_xy(10, 6) - } -} - -/////////////////////////////////////////////////////////////////////////////////////////////////// - -struct SequenceLoopRange; -impl Content for SequenceLoopRange { - type Engine = Tui; - fn content (&self) -> impl Widget { - col! { "Loop [ ]" - , "From: ", " 1.1.1" - , "Length: ", " 1.0.0", }.min_xy(10, 7) - } -} - -/////////////////////////////////////////////////////////////////////////////////////////////////// - -struct SequenceNoteRange; -impl Content for SequenceNoteRange { - type Engine = Tui; - fn content (&self) -> impl Widget { - Stack::down(|add|{ - //Lozenge(Style::default().fg(Nord::BG2)).draw(to.with_rect(range))?; - add(&"Notes: ")?;//Some(STYLE_LABEL)); - add(&"C#0-C#9 ")?;//Some(STYLE_VALUE)); - add(&"[ /2 ]")?;//Some(STYLE_LABEL)); - add(&"[ x2 ]")?;//Some(STYLE_LABEL)); - add(&"[ Rev ]")?;//Some(STYLE_LABEL)); - add(&"[ Inv ]")?;//Some(STYLE_LABEL)); - add(&"[ Dup ]")?;//Some(STYLE_LABEL)); - Ok(()) - }).min_xy(10, 9) - } -} - -/////////////////////////////////////////////////////////////////////////////////////////////////// - struct SequenceKeys<'a>(&'a Sequencer); impl<'a> Widget for SequenceKeys<'a> { type Engine = Tui;