mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-06 03:36:41 +01:00
stub save/load/options
This commit is contained in:
parent
6f6078e25a
commit
57102d7e6b
7 changed files with 54 additions and 15 deletions
|
|
@ -6,7 +6,7 @@
|
|||
(@shift-O output add)
|
||||
(@shift-S scene add)
|
||||
(@shift-T track add)
|
||||
(@shift-Z device picker)
|
||||
(@shift-D device picker)
|
||||
|
||||
(@up select :select-scene-prev)
|
||||
(@down select :select-scene-next)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
(@esc device select-cancel)
|
||||
(@esc device cancel)
|
||||
(@up device pick :device-kind-prev)
|
||||
(@down device pick :device-kind-next)
|
||||
(@enter device add :device-kind)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
(@esc toggle-menu)
|
||||
(@f1 toggle-help)
|
||||
(@esc toggle-dialog :dialog-menu)
|
||||
(@f1 toggle-dialog :dialog-help)
|
||||
(@f6 toggle-dialog :dialog-save)
|
||||
(@f8 toggle-dialog :dialog-options)
|
||||
(@f9 toggle-dialog :dialog-load)
|
||||
(@f10 toggle-dialog :dialog-quit)
|
||||
|
||||
(@u undo 1)
|
||||
(@shift-u redo 1)
|
||||
|
|
|
|||
|
|
@ -1 +1,3 @@
|
|||
(@r sampler record/toggle :sample)
|
||||
(@r sampler record/toggle :sample)
|
||||
(@tab focus-next)
|
||||
(@shift-tab focus-prev)
|
||||
|
|
|
|||
|
|
@ -57,6 +57,21 @@ handle!(TuiIn: |self: App, input|Ok(if let Some(command) = self.config.keys.comm
|
|||
fn focus_pool_length (&self) -> bool {
|
||||
matches!(self.pool.as_ref().map(|p|p.mode.as_ref()).flatten(), Some(PoolMode::Length(..)))
|
||||
}
|
||||
fn dialog_help (&self) -> Dialog {
|
||||
Dialog::Help
|
||||
}
|
||||
fn dialog_menu (&self) -> Dialog {
|
||||
Dialog::Menu
|
||||
}
|
||||
fn dialog_save (&self) -> Dialog {
|
||||
Dialog::Save
|
||||
}
|
||||
fn dialog_load (&self) -> Dialog {
|
||||
Dialog::Load
|
||||
}
|
||||
fn dialog_options (&self) -> Dialog {
|
||||
Dialog::Options
|
||||
}
|
||||
fn editor_pitch (&self) -> Option<u7> {
|
||||
Some((self.editor().map(|e|e.get_note_pos()).unwrap() as u8).into())
|
||||
}
|
||||
|
|
@ -203,15 +218,11 @@ handle!(TuiIn: |self: App, input|Ok(if let Some(command) = self.config.keys.comm
|
|||
}
|
||||
|
||||
#[tengri_proc::command(App)] impl AppCommand {
|
||||
fn toggle_help (app: &mut App) -> Perhaps<Self> {
|
||||
app.toggle_dialog(Some(Dialog::Help));
|
||||
fn toggle_dialog (app: &mut App, dialog: Dialog) -> Perhaps<Self> {
|
||||
app.toggle_dialog(Some(dialog));
|
||||
Ok(None)
|
||||
}
|
||||
fn toggle_menu (app: &mut App) -> Perhaps<Self> {
|
||||
app.toggle_dialog(Some(Dialog::Menu));
|
||||
Ok(None)
|
||||
}
|
||||
fn toggle_edit (app: &mut App, value: bool) -> Perhaps<Self> {
|
||||
fn toggle_editor (app: &mut App, value: bool) -> Perhaps<Self> {
|
||||
app.toggle_editor(Some(value));
|
||||
Ok(None)
|
||||
}
|
||||
|
|
@ -346,6 +357,10 @@ impl<'state> Context<'state, SamplerCommand> for App {
|
|||
}
|
||||
|
||||
#[tengri_proc::command(App)] impl DeviceCommand {
|
||||
fn cancel (app: &mut App) -> Perhaps<Self> {
|
||||
app.dialog = None;
|
||||
Ok(None)
|
||||
}
|
||||
fn picker (app: &mut App) -> Perhaps<Self> {
|
||||
app.device_picker_show();
|
||||
Ok(None)
|
||||
|
|
|
|||
|
|
@ -19,7 +19,10 @@ pub enum Dialog {
|
|||
Help,
|
||||
Menu,
|
||||
Device(usize),
|
||||
Message(Message)
|
||||
Message(Message),
|
||||
Save,
|
||||
Load,
|
||||
Options,
|
||||
}
|
||||
|
||||
/// Various possible messages
|
||||
|
|
|
|||
|
|
@ -59,6 +59,9 @@ impl App {
|
|||
.enclose(self.dialog.as_ref().map(|dialog|match dialog {
|
||||
Dialog::Menu => self.view_dialog_menu().boxed(),
|
||||
Dialog::Help => self.view_dialog_help().boxed(),
|
||||
Dialog::Save => self.view_dialog_save().boxed(),
|
||||
Dialog::Load => self.view_dialog_load().boxed(),
|
||||
Dialog::Options => self.view_dialog_options().boxed(),
|
||||
Dialog::Device(index) => self.view_dialog_device(*index).boxed(),
|
||||
Dialog::Message(message) => self.view_dialog_message(message).boxed(),
|
||||
}))
|
||||
|
|
@ -115,6 +118,18 @@ impl App {
|
|||
Bsp::s(message, Bsp::s("", "[ OK ]"))
|
||||
}
|
||||
|
||||
fn view_dialog_save <'a> (&'a self) -> impl Content<TuiOut> + use<'a> {
|
||||
"WIP: SAVE"
|
||||
}
|
||||
|
||||
fn view_dialog_load <'a> (&'a self) -> impl Content<TuiOut> + use<'a> {
|
||||
"WIP: LOAD"
|
||||
}
|
||||
|
||||
fn view_dialog_options <'a> (&'a self) -> impl Content<TuiOut> + use<'a> {
|
||||
"WIP: OPTIONS"
|
||||
}
|
||||
|
||||
/// Spacing between tracks.
|
||||
pub(crate) const TRACK_SPACING: usize = 0;
|
||||
|
||||
|
|
@ -289,8 +304,8 @@ impl<'a> ArrangerView<'a> {
|
|||
pub(crate) fn devices (&'a self) -> impl Content<TuiOut> + 'a {
|
||||
let Self { width_side, width_mid, track_count, track_selected, is_editing, .. } = self;
|
||||
Tryptich::top(1)
|
||||
.left(*width_side, button_3("z", "devices", format!("{}", 0), *is_editing))
|
||||
.right(*width_side, button_2("Z", "add device", *is_editing))
|
||||
.left(*width_side, button_3("d", "devices", format!("{}", 0), *is_editing))
|
||||
.right(*width_side, button_2("D", "add device", *is_editing))
|
||||
.middle(*width_mid, per_track_top(*width_mid, ||self.tracks_with_sizes_scrolled(),
|
||||
move|index, track|{
|
||||
let bg = if *track_selected == Some(index) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue