mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-08 12:46:42 +01:00
wip: p.53, e=118, fixed focus trait loop
This commit is contained in:
parent
9b996878c2
commit
76af9d9bac
15 changed files with 737 additions and 727 deletions
|
|
@ -12,58 +12,49 @@ pub(crate) use std::fs::read_dir;
|
|||
use std::fmt::Debug;
|
||||
|
||||
submod! {
|
||||
|
||||
tui_apis
|
||||
tui_cmd
|
||||
tui_command
|
||||
tui_control
|
||||
tui_focus
|
||||
tui_handle
|
||||
tui_init
|
||||
tui_input
|
||||
tui_jack
|
||||
tui_menu
|
||||
tui_model
|
||||
tui_select
|
||||
tui_status
|
||||
tui_theme
|
||||
tui_select
|
||||
|
||||
tui_phrase
|
||||
tui_sequencer
|
||||
|
||||
//tui_mixer // TODO
|
||||
//tui_plugin // TODO
|
||||
//tui_plugin_lv2
|
||||
//tui_plugin_lv2_gui
|
||||
//tui_plugin_vst2
|
||||
//tui_plugin_vst3
|
||||
//tui_sampler // TODO
|
||||
//tui_sampler_cmd
|
||||
tui_view
|
||||
}
|
||||
|
||||
// TODO
|
||||
impl<A, C, S> Content for AppView<Tui, A, C, S>
|
||||
where
|
||||
A: Widget<Engine = Tui> + Audio,
|
||||
C: Command<Self>,
|
||||
S: StatusBar,
|
||||
{
|
||||
type Engine = Tui;
|
||||
fn content (&self) -> impl Widget<Engine = Tui> {
|
||||
let menus = self.menu_bar.as_ref().map_or_else(
|
||||
||&[] as &[Menu<_, _, _>],
|
||||
|m|m.menus.as_slice()
|
||||
);
|
||||
fn content_with_menu_and_status <'a, S: Send + Sync + 'a, C: Command<S>> (
|
||||
content: &'a impl Widget<Engine = Tui>,
|
||||
menu_bar: Option<&'a MenuBar<Tui, S, C>>,
|
||||
status_bar: Option<impl Widget<Engine = Tui>>
|
||||
) -> impl Widget<Engine = Tui> + 'a {
|
||||
let menus = menu_bar.as_ref().map_or_else(
|
||||
||&[] as &[Menu<_, _, _>],
|
||||
|m|m.menus.as_slice()
|
||||
);
|
||||
let content = Either(
|
||||
status_bar.is_none(),
|
||||
widget(&content),
|
||||
Split::up(
|
||||
1,
|
||||
widget(status_bar.as_ref().unwrap()),
|
||||
widget(&content)
|
||||
),
|
||||
);
|
||||
Either(
|
||||
menu_bar.is_none(),
|
||||
widget(&content),
|
||||
Split::down(
|
||||
if self.menu_bar.is_some() { 1 } else { 0 },
|
||||
1,
|
||||
row!(menu in menus.iter() => {
|
||||
row!(" ", menu.title.as_str(), " ")
|
||||
}),
|
||||
Either(
|
||||
self.status_bar.is_some(),
|
||||
Split::up(
|
||||
1,
|
||||
widget(self.status_bar.as_ref().unwrap()),
|
||||
widget(&self.app)
|
||||
),
|
||||
widget(&self.app)
|
||||
)
|
||||
widget(&content)
|
||||
)
|
||||
}
|
||||
)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue