mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-06 19:56:42 +01:00
modal -> dialog; extract dialog, selection, editor
This commit is contained in:
parent
6286d69824
commit
a3beab0f36
7 changed files with 391 additions and 377 deletions
|
|
@ -60,30 +60,30 @@ impl Tek {
|
|||
self.sampler().map(|s|s.view_sample(self.editor().unwrap().note_pos()))
|
||||
}
|
||||
|
||||
#[tengri::view(":modal")]
|
||||
fn view_modal (&self) -> impl Content<TuiOut> + use<'_> {
|
||||
When::new(self.modal.is_some(), Bsp::b(
|
||||
#[tengri::view(":dialog")]
|
||||
fn view_dialog (&self) -> impl Content<TuiOut> + use<'_> {
|
||||
When::new(self.dialog.is_some(), Bsp::b(
|
||||
Fill::xy(Tui::fg_bg(Rgb(64,64,64), Rgb(32,32,32), "")),
|
||||
Fixed::xy(30, 15, Tui::fg_bg(Rgb(255,255,255), Rgb(16,16,16), Bsp::b(
|
||||
Repeat(" "),
|
||||
Outer(true, Style::default().fg(Tui::g(96)))
|
||||
.enclose(self.modal.as_ref().map(|modal|match modal {
|
||||
Modal::Menu => self.view_modal_menu().boxed(),
|
||||
Modal::Help => self.view_modal_help().boxed(),
|
||||
Modal::Device(index) => self.view_modal_device(*index).boxed(),
|
||||
Modal::Message(message) => self.view_modal_message(message).boxed(),
|
||||
.enclose(self.dialog.as_ref().map(|dialog|match dialog {
|
||||
Dialog::Menu => self.view_dialog_menu().boxed(),
|
||||
Dialog::Help => self.view_dialog_help().boxed(),
|
||||
Dialog::Device(index) => self.view_dialog_device(*index).boxed(),
|
||||
Dialog::Message(message) => self.view_dialog_message(message).boxed(),
|
||||
}))
|
||||
)))
|
||||
))
|
||||
}
|
||||
|
||||
fn view_modal_menu (&self) -> impl Content<TuiOut> {
|
||||
fn view_dialog_menu (&self) -> impl Content<TuiOut> {
|
||||
let options = ||["Projects", "Settings", "Help", "Quit"].iter();
|
||||
let option = |a,i|Tui::fg(Rgb(255,255,255), format!("{}", a));
|
||||
Bsp::s(Tui::bold(true, "tek!"), Bsp::s("", Map::south(1, options, option)))
|
||||
}
|
||||
|
||||
fn view_modal_help (&self) -> impl Content<TuiOut> + use<'_> {
|
||||
fn view_dialog_help (&self) -> impl Content<TuiOut> + use<'_> {
|
||||
let bindings = ||self.config.keys.layers.iter()
|
||||
.filter_map(|a|(a.0)(self).then_some(a.1))
|
||||
.flat_map(|a|a)
|
||||
|
|
@ -111,7 +111,7 @@ impl Tek {
|
|||
Bsp::s(Tui::bold(true, "Help"), Bsp::s("", Map::south(1, bindings, binding)))
|
||||
}
|
||||
|
||||
fn view_modal_device (&self, index: usize) -> impl Content<TuiOut> + use<'_> {
|
||||
fn view_dialog_device (&self, index: usize) -> impl Content<TuiOut> + use<'_> {
|
||||
let choices = ||self.device_kinds().iter();
|
||||
let choice = move|label, i|
|
||||
Fill::x(Tui::bg(if i == index { Rgb(64,128,32) } else { Rgb(0,0,0) },
|
||||
|
|
@ -121,7 +121,7 @@ impl Tek {
|
|||
Bsp::s(Tui::bold(true, "Add device"), Map::south(1, choices, choice))
|
||||
}
|
||||
|
||||
fn view_modal_message <'a> (&'a self, message: &'a Message) -> impl Content<TuiOut> + use<'a> {
|
||||
fn view_dialog_message <'a> (&'a self, message: &'a Message) -> impl Content<TuiOut> + use<'a> {
|
||||
Bsp::s(message, Bsp::s("", "[ OK ]"))
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue