mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-07 12:16:42 +01:00
add PgUp/PgDown in sequencer
This commit is contained in:
parent
359afb2e8c
commit
eccb355815
3 changed files with 17 additions and 10 deletions
|
|
@ -2,19 +2,19 @@ use crate::*;
|
||||||
|
|
||||||
macro_rules! impl_axis_common { ($A:ident $T:ty) => {
|
macro_rules! impl_axis_common { ($A:ident $T:ty) => {
|
||||||
impl $A<$T> {
|
impl $A<$T> {
|
||||||
pub fn start_inc (&mut self) -> $T {
|
#[inline] pub fn start_inc (&mut self) -> $T {
|
||||||
self.start += 1;
|
self.start += 1;
|
||||||
self.start
|
self.start
|
||||||
}
|
}
|
||||||
pub fn start_dec (&mut self) -> $T {
|
#[inline] pub fn start_dec (&mut self) -> $T {
|
||||||
self.start = self.start.saturating_sub(1);
|
self.start = self.start.saturating_sub(1);
|
||||||
self.start
|
self.start
|
||||||
}
|
}
|
||||||
pub fn point_inc (&mut self) -> Option<$T> {
|
#[inline] pub fn point_inc (&mut self) -> Option<$T> {
|
||||||
self.point = self.point.map(|p|p + 1);
|
self.point = self.point.map(|p|p + 1);
|
||||||
self.point
|
self.point
|
||||||
}
|
}
|
||||||
pub fn point_dec (&mut self) -> Option<$T> {
|
#[inline] pub fn point_dec (&mut self) -> Option<$T> {
|
||||||
self.point = self.point.map(|p|p.saturating_sub(1));
|
self.point = self.point.map(|p|p.saturating_sub(1));
|
||||||
self.point
|
self.point
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -89,7 +89,12 @@ impl Handle<Tui> for PhraseEditor<Tui> {
|
||||||
key!(KeyCode::Char('`')) => { self.mode = !self.mode; },
|
key!(KeyCode::Char('`')) => { self.mode = !self.mode; },
|
||||||
key!(KeyCode::Enter) => { self.entered = true; },
|
key!(KeyCode::Enter) => { self.entered = true; },
|
||||||
key!(KeyCode::Esc) => { self.entered = false; },
|
key!(KeyCode::Esc) => { self.entered = false; },
|
||||||
|
key!(KeyCode::PageUp) => {
|
||||||
|
self.note_axis.start = self.note_axis.start.saturating_sub(3);
|
||||||
|
}
|
||||||
|
key!(KeyCode::PageDown) => {
|
||||||
|
self.note_axis.start = self.note_axis.start + 3;
|
||||||
|
}
|
||||||
key!(KeyCode::Up) => match self.entered {
|
key!(KeyCode::Up) => match self.entered {
|
||||||
true => { self.note_axis.point_dec(); },
|
true => { self.note_axis.point_dec(); },
|
||||||
false => { self.note_axis.start_dec(); },
|
false => { self.note_axis.start_dec(); },
|
||||||
|
|
@ -108,15 +113,17 @@ impl Handle<Tui> for PhraseEditor<Tui> {
|
||||||
},
|
},
|
||||||
key!(KeyCode::Char(',')) => match self.entered {
|
key!(KeyCode::Char(',')) => match self.entered {
|
||||||
true => { self.note_len = prev_note_length(self.note_len) },
|
true => { self.note_len = prev_note_length(self.note_len) },
|
||||||
false => { self.time_axis.scale = prev_note_length(self.time_axis.scale) },
|
false => { self.time_axis.scale = next_note_length(self.time_axis.scale) },
|
||||||
},
|
},
|
||||||
key!(KeyCode::Char('.')) => match self.entered {
|
key!(KeyCode::Char('.')) => match self.entered {
|
||||||
true => { self.note_len = next_note_length(self.note_len) },
|
true => { self.note_len = next_note_length(self.note_len) },
|
||||||
false => { self.time_axis.scale = next_note_length(self.time_axis.scale) },
|
false => { self.time_axis.scale = prev_note_length(self.time_axis.scale) },
|
||||||
},
|
},
|
||||||
key!(KeyCode::Char('a')) => if self.entered {
|
key!(KeyCode::Char('a')) => if self.entered {
|
||||||
self.put();
|
self.put();
|
||||||
self.time_axis.point = self.time_axis.point.map(|time|time + self.note_len);
|
self.time_axis.point = self.time_axis.point.map(|time|{
|
||||||
|
time + self.note_len / self.time_axis.scale
|
||||||
|
});
|
||||||
},
|
},
|
||||||
key!(KeyCode::Char('s')) => if self.entered {
|
key!(KeyCode::Char('s')) => if self.entered {
|
||||||
self.put();
|
self.put();
|
||||||
|
|
|
||||||
|
|
@ -139,7 +139,7 @@ impl Content for PhraseEditor<Tui> {
|
||||||
if *focused {
|
if *focused {
|
||||||
if *entered {
|
if *entered {
|
||||||
lower_left = "[Esc] Exit edit mode [A]ppend [S]et".to_string();
|
lower_left = "[Esc] Exit edit mode [A]ppend [S]et".to_string();
|
||||||
lower_right = format!("[,.] Length: {} {lower_right}", ppq_to_name(*note_len));
|
lower_right = format!("[,.] Note: {} {lower_right}", ppq_to_name(*note_len));
|
||||||
} else {
|
} else {
|
||||||
lower_left = "[Enter] Edit notes".to_string();
|
lower_left = "[Enter] Edit notes".to_string();
|
||||||
lower_right = format!("[,.] {lower_right}");
|
lower_right = format!("[,.] {lower_right}");
|
||||||
|
|
@ -206,7 +206,7 @@ impl PhraseEditor<Tui> {
|
||||||
} else {
|
} else {
|
||||||
'·'
|
'·'
|
||||||
});
|
});
|
||||||
cell.set_fg(Color::Gray);
|
cell.set_fg(Color::Rgb(48, 64, 56));
|
||||||
cell.modifier = Modifier::DIM;
|
cell.modifier = Modifier::DIM;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue