mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-07 12:16:42 +01:00
move test crate into core
This commit is contained in:
parent
02db343574
commit
0a842b607a
12 changed files with 523 additions and 507 deletions
75
crates/tek_core/examples/demo.rs
Normal file
75
crates/tek_core/examples/demo.rs
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
use tek_core::*;
|
||||
use tek_core::jack::*;
|
||||
|
||||
fn main () -> Usually<()> {
|
||||
Tui::run(Arc::new(RwLock::new(Demo::new())))?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub struct Demo<E: Engine> {
|
||||
index: usize,
|
||||
items: Vec<Box<dyn Widget<Engine = E>>>
|
||||
}
|
||||
|
||||
impl Demo<Tui> {
|
||||
fn new () -> Self {
|
||||
Self {
|
||||
index: 0,
|
||||
items: vec![
|
||||
Box::new(tek_sequencer::TransportPlayPauseButton {
|
||||
_engine: Default::default(),
|
||||
transport: None,
|
||||
value: Some(TransportState::Stopped),
|
||||
focused: true
|
||||
}),
|
||||
Box::new(tek_sequencer::TransportPlayPauseButton {
|
||||
_engine: Default::default(),
|
||||
transport: None,
|
||||
value: Some(TransportState::Rolling),
|
||||
focused: false
|
||||
}),
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl Content for Demo<Tui> {
|
||||
type Engine = Tui;
|
||||
fn content (&self) -> impl Widget<Engine = Tui> {
|
||||
Align::Center(Fixed::XY(10, 10, Layers::new(|add|{
|
||||
add(&FillBg(Color::Rgb(128,0,0)))?;
|
||||
add(&Split::down(|add|{
|
||||
add(&Layers::new(|add|{
|
||||
add(&FillBg(Color::Rgb(0,128,0)))?;
|
||||
add(&Align::Center("12345"))?;
|
||||
add(&Align::Center("FOO"))
|
||||
}))?;
|
||||
add(&Layers::new(|add|{
|
||||
add(&FillBg(Color::Rgb(0,0,128)))?;
|
||||
add(&Align::Center("1234567"))?;
|
||||
add(&Align::Center("BAR"))
|
||||
}))?;
|
||||
Ok(())
|
||||
}))
|
||||
})))
|
||||
}
|
||||
}
|
||||
|
||||
impl Handle<Tui> for Demo<Tui> {
|
||||
fn handle (&mut self, from: &Tui) -> Perhaps<bool> {
|
||||
match from.event() {
|
||||
key!(KeyCode::PageUp) => {
|
||||
self.index = (self.index + 1) % self.items.len();
|
||||
},
|
||||
key!(KeyCode::PageDown) => {
|
||||
self.index = if self.index > 1 {
|
||||
self.index - 1
|
||||
} else {
|
||||
self.items.len() - 1
|
||||
};
|
||||
},
|
||||
_ => return Ok(None)
|
||||
}
|
||||
Ok(Some(true))
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue