mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-07 12:16:42 +01:00
cmdsys: menubar pt.1
This commit is contained in:
parent
2b163e9e27
commit
38e8cfc214
7 changed files with 180 additions and 136 deletions
|
|
@ -24,6 +24,8 @@ pub struct Arranger<E: Engine> {
|
|||
pub phrases_split: u16,
|
||||
/// Width and height of app at last render
|
||||
pub size: Measure<E>,
|
||||
/// Menu bar
|
||||
pub menu: MenuBar<E, Self, ArrangerCommand>,
|
||||
}
|
||||
/// Sections in the arranger app that may be focused
|
||||
#[derive(Copy, Clone, PartialEq, Eq)]
|
||||
|
|
@ -141,6 +143,59 @@ impl<E: Engine> Arranger<E> {
|
|||
} else {
|
||||
Arc::new(TransportTime::default())
|
||||
},
|
||||
menu: {
|
||||
use ArrangerCommand::*;
|
||||
MenuBar::new()
|
||||
.add({
|
||||
use ArrangementCommand::*;
|
||||
Menu::new("File")
|
||||
.cmd("n", "New project", Arrangement(New))
|
||||
.cmd("l", "Load project", Arrangement(Load))
|
||||
.cmd("s", "Save project", Arrangement(Save))
|
||||
})
|
||||
.add({
|
||||
use TransportCommand::*;
|
||||
Menu::new("Transport")
|
||||
.cmd("p", "Play", Transport(Play))
|
||||
.cmd("s", "Play from start", Transport(PlayFromStart))
|
||||
.cmd("a", "Pause", Transport(Pause))
|
||||
})
|
||||
.add({
|
||||
use ArrangementCommand::*;
|
||||
Menu::new("Track")
|
||||
.cmd("a", "Append new", Arrangement(AddTrack))
|
||||
.cmd("i", "Insert new", Arrangement(AddTrack))
|
||||
.cmd("n", "Rename", Arrangement(AddTrack))
|
||||
.cmd("d", "Delete", Arrangement(AddTrack))
|
||||
.cmd(">", "Move up", Arrangement(AddTrack))
|
||||
.cmd("<", "Move down", Arrangement(AddTrack))
|
||||
})
|
||||
.add({
|
||||
use ArrangementCommand::*;
|
||||
Menu::new("Scene")
|
||||
.cmd("a", "Append new", Arrangement(AddScene))
|
||||
.cmd("i", "Insert new", Arrangement(AddTrack))
|
||||
.cmd("n", "Rename", Arrangement(AddTrack))
|
||||
.cmd("d", "Delete", Arrangement(AddTrack))
|
||||
.cmd(">", "Move up", Arrangement(AddTrack))
|
||||
.cmd("<", "Move down", Arrangement(AddTrack))
|
||||
})
|
||||
.add({
|
||||
use PhrasePoolCommand::*;
|
||||
use PhraseRenameCommand as Rename;
|
||||
use PhraseLengthCommand as Length;
|
||||
Menu::new("Phrase")
|
||||
.cmd("a", "Append new", Phrases(Append))
|
||||
.cmd("i", "Insert new", Phrases(Insert))
|
||||
.cmd("n", "Rename", Phrases(Rename(Rename::Begin)))
|
||||
.cmd("t", "Set length", Phrases(Length(Length::Begin)))
|
||||
.cmd("d", "Delete", Phrases(Delete))
|
||||
.cmd("l", "Load from MIDI...", Phrases(Import))
|
||||
.cmd("s", "Save to MIDI...", Phrases(Export))
|
||||
.cmd(">", "Move up", Phrases(MoveUp))
|
||||
.cmd("<", "Move down", Phrases(MoveDown))
|
||||
})
|
||||
}
|
||||
};
|
||||
app.update_focus();
|
||||
app
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue