mirror of
https://codeberg.org/unspeaker/tek.git
synced 2026-08-28 21:06:56 +02:00
This commit is contained in:
parent
da2099c52e
commit
d9e17cd348
2 changed files with 49 additions and 36 deletions
|
|
@ -83,19 +83,19 @@ pub trait SceneController: HasScene
|
|||
+ Namespace<Arc<str>>
|
||||
+ Namespace<ItemTheme>
|
||||
{
|
||||
#[command(SetSize = "scene/size")]
|
||||
#[command(SetSize = "size")]
|
||||
fn scene_set_size (&mut self, _size: usize) -> Perhaps<SceneCommand>
|
||||
where Self: Namespace<usize>
|
||||
{
|
||||
todo!()
|
||||
}
|
||||
#[command(SetZoom = "scene/zoom")]
|
||||
#[command(SetZoom = "zoom")]
|
||||
fn scene_set_zoom (&mut self, _size: usize) -> Perhaps<SceneCommand>
|
||||
where Self: Namespace<usize>
|
||||
{
|
||||
todo!()
|
||||
}
|
||||
#[command(SetName = "scene/name")]
|
||||
#[command(SetName = "name")]
|
||||
fn scene_set_name (&mut self, name: Arc<str>) -> Perhaps<SceneCommand>
|
||||
where Self: Namespace<Arc<str>>
|
||||
{
|
||||
|
|
@ -105,7 +105,7 @@ pub trait SceneController: HasScene
|
|||
|name|SceneCommand::SetName { name }
|
||||
)).transpose()?.flatten())
|
||||
}
|
||||
#[command(SetColor = "scene/color")]
|
||||
#[command(SetColor = "color")]
|
||||
fn scene_set_color (&mut self, color: ItemTheme) -> Perhaps<SceneCommand>
|
||||
where Self: Namespace<ItemTheme>
|
||||
{
|
||||
|
|
@ -171,6 +171,9 @@ pub trait HasScenes: AsRef<Vec<Scene>> + AsMut<Vec<Scene>> {
|
|||
}
|
||||
|
||||
impl<T: HasScenes
|
||||
+ HasTracks
|
||||
+ HasTrackScroll
|
||||
+ HasJack<'static>
|
||||
+ Namespace<usize>
|
||||
+ Namespace<Option<ItemTheme>>
|
||||
+ Namespace<Option<Arc<str>>>
|
||||
|
|
@ -178,10 +181,20 @@ impl<T: HasScenes
|
|||
|
||||
#[tek_proc::commands(ScenesCommand)]
|
||||
pub trait ScenesController: HasScenes
|
||||
+ HasTracks
|
||||
+ HasTrackScroll
|
||||
+ HasJack<'static>
|
||||
+ Namespace<usize>
|
||||
+ Namespace<Option<ItemTheme>>
|
||||
+ Namespace<Option<Arc<str>>>
|
||||
{
|
||||
#[command(Add = "add")]
|
||||
fn scenes_add (&mut self) -> Perhaps<ScenesCommand>
|
||||
where Self: HasScenes + HasJack<'static>
|
||||
{
|
||||
let (_index, _) = self.scenes_add_one(None, None)?;
|
||||
Ok(None)
|
||||
}
|
||||
// TODO
|
||||
}
|
||||
|
||||
|
|
@ -262,27 +275,27 @@ impl HasSceneScroll for App {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn view_scene_name (
|
||||
select: &Selection,
|
||||
editor: Option<&MidiEditor>,
|
||||
index: usize,
|
||||
scene: &Scene,
|
||||
editing: bool
|
||||
) -> impl Draw<Tui> {
|
||||
let h = if select.scene() == Some(index) && let Some(_editor) = editor {
|
||||
7
|
||||
} else {
|
||||
Scene::DEFAULT_HEIGHT as u16
|
||||
};
|
||||
let a = east(format!("·s{index:02} "),
|
||||
fg(g(255), bold(true, &scene.name))).align_w().full_w();
|
||||
let b = when(select.scene() == Some(index) && editing, south(
|
||||
editor.as_ref().map(|e|e.clip_status()),
|
||||
editor.as_ref().map(|e|e.edit_status())).align_nw().full_wh());
|
||||
let c = if select.scene() == Some(index) {
|
||||
scene.color.light.term
|
||||
} else {
|
||||
scene.color.base.term
|
||||
};
|
||||
bg(c, south(a, b).align_nw()).exact_wh(20, h)
|
||||
}
|
||||
pub fn view_scene_name (
|
||||
select: &Selection,
|
||||
editor: Option<&MidiEditor>,
|
||||
index: usize,
|
||||
scene: &Scene,
|
||||
editing: bool
|
||||
) -> impl Draw<Tui> {
|
||||
let h = if select.scene() == Some(index) && let Some(_editor) = editor {
|
||||
7
|
||||
} else {
|
||||
Scene::DEFAULT_HEIGHT as u16
|
||||
};
|
||||
let a = east(format!("·s{index:02} "),
|
||||
fg(g(255), bold(true, &scene.name))).align_w().full_w();
|
||||
let b = when(select.scene() == Some(index) && editing, south(
|
||||
editor.as_ref().map(|e|e.clip_status()),
|
||||
editor.as_ref().map(|e|e.edit_status())).align_nw().full_wh());
|
||||
let c = if select.scene() == Some(index) {
|
||||
scene.color.light.term
|
||||
} else {
|
||||
scene.color.base.term
|
||||
};
|
||||
bg(c, south(a, b).align_nw()).exact_wh(20, h)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue