mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-09 13:16:44 +01:00
wip: implement focus_next and focus_prev
This commit is contained in:
parent
a694903bdb
commit
cd9244ec88
4 changed files with 37 additions and 60 deletions
|
|
@ -88,11 +88,19 @@ impl Focusable<Tui> for Arrangement<Tui> {
|
|||
impl Handle<Tui> for Arrangement<Tui> {
|
||||
fn handle (&mut self, from: &TuiInput) -> Perhaps<bool> {
|
||||
match from.event() {
|
||||
// mode_switch: switch the display mode
|
||||
key!(KeyCode::Char('`')) => {
|
||||
self.mode.to_next()
|
||||
key!(KeyCode::Char('`')) => { self.mode.to_next(); },
|
||||
key!(KeyCode::Delete) => { self.phrase_del(); self.show_phrase(); },
|
||||
key!(KeyCode::Char('.')) => { self.phrase_next(); self.show_phrase(); },
|
||||
key!(KeyCode::Char(',')) => { self.phrase_prev(); self.show_phrase(); },
|
||||
// TODO: next/prev scene
|
||||
key!(KeyCode::Enter) => { self.activate(); },
|
||||
key!(Ctrl-KeyCode::Char('a')) => { self.scene_add(None)?; },
|
||||
key!(Ctrl-KeyCode::Char('t')) => { self.track_add(None)?; },
|
||||
key!(KeyCode::Char('n')) => { todo!("rename selected"); },
|
||||
key!(KeyCode::Char('c')) => { todo!("recolor selected"); },
|
||||
key!(KeyCode::Char('l')) => if let Some(phrase) = self.phrase() {
|
||||
phrase.write().unwrap().toggle_loop()
|
||||
},
|
||||
// cursor_up: move cursor up
|
||||
key!(KeyCode::Up) => {
|
||||
match self.mode {
|
||||
ArrangementViewMode::Horizontal => self.track_prev(),
|
||||
|
|
@ -100,7 +108,6 @@ impl Handle<Tui> for Arrangement<Tui> {
|
|||
};
|
||||
self.show_phrase();
|
||||
},
|
||||
// cursor_down
|
||||
key!(KeyCode::Down) => {
|
||||
match self.mode {
|
||||
ArrangementViewMode::Horizontal => self.track_next(),
|
||||
|
|
@ -108,7 +115,6 @@ impl Handle<Tui> for Arrangement<Tui> {
|
|||
};
|
||||
self.show_phrase();
|
||||
},
|
||||
// cursor left
|
||||
key!(KeyCode::Left) => {
|
||||
match self.mode {
|
||||
ArrangementViewMode::Horizontal => self.scene_prev(),
|
||||
|
|
@ -116,7 +122,6 @@ impl Handle<Tui> for Arrangement<Tui> {
|
|||
};
|
||||
self.show_phrase();
|
||||
},
|
||||
// cursor right
|
||||
key!(KeyCode::Right) => {
|
||||
match self.mode {
|
||||
ArrangementViewMode::Horizontal => self.scene_next(),
|
||||
|
|
@ -124,45 +129,6 @@ impl Handle<Tui> for Arrangement<Tui> {
|
|||
};
|
||||
self.show_phrase();
|
||||
},
|
||||
// increment: remove clip
|
||||
key!(KeyCode::Delete) => {
|
||||
self.phrase_del();
|
||||
self.show_phrase();
|
||||
},
|
||||
// increment: use next clip here
|
||||
key!(KeyCode::Char('.')) => {
|
||||
self.phrase_next();
|
||||
self.show_phrase();
|
||||
},
|
||||
// decrement: use previous next clip here
|
||||
key!(KeyCode::Char(',')) => {
|
||||
self.phrase_prev();
|
||||
self.show_phrase();
|
||||
},
|
||||
// decrement: use previous clip here
|
||||
key!(KeyCode::Enter) => {
|
||||
self.activate();
|
||||
},
|
||||
// scene_add: add a new scene
|
||||
key!(Ctrl-KeyCode::Char('a')) => {
|
||||
self.scene_add(None)?;
|
||||
},
|
||||
// track_add: add a new scene
|
||||
key!(Ctrl-KeyCode::Char('t')) => {
|
||||
self.track_add(None)?;
|
||||
},
|
||||
// rename: add a new scene
|
||||
//key!(KeyCode::Char('n')) => {
|
||||
//self.rename_selected();
|
||||
//},
|
||||
// length: add a new scene
|
||||
key!(KeyCode::Char('l')) => if let Some(phrase) = self.phrase() {
|
||||
phrase.write().unwrap().toggle_loop()
|
||||
},
|
||||
// color: set color of item at cursor
|
||||
key!(KeyCode::Char('c')) => {
|
||||
todo!();
|
||||
},
|
||||
_ => return Ok(None)
|
||||
}
|
||||
Ok(Some(true))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue