diff --git a/src/device/arrange/scene.rs b/src/device/arrange/scene.rs index 3226a6f6..cff99a43 100644 --- a/src/device/arrange/scene.rs +++ b/src/device/arrange/scene.rs @@ -83,19 +83,19 @@ pub trait SceneController: HasScene + Namespace> + Namespace { - #[command(SetSize = "scene/size")] + #[command(SetSize = "size")] fn scene_set_size (&mut self, _size: usize) -> Perhaps where Self: Namespace { todo!() } - #[command(SetZoom = "scene/zoom")] + #[command(SetZoom = "zoom")] fn scene_set_zoom (&mut self, _size: usize) -> Perhaps where Self: Namespace { todo!() } - #[command(SetName = "scene/name")] + #[command(SetName = "name")] fn scene_set_name (&mut self, name: Arc) -> Perhaps where Self: Namespace> { @@ -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 where Self: Namespace { @@ -171,6 +171,9 @@ pub trait HasScenes: AsRef> + AsMut> { } impl + Namespace + Namespace> + Namespace>> @@ -178,10 +181,20 @@ impl + Namespace + Namespace> + Namespace>> { + #[command(Add = "add")] + fn scenes_add (&mut self) -> Perhaps + 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 { - 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 { + 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) +} diff --git a/src/tek.edn b/src/tek.edn index 93e217ba..7c2f2e99 100644 --- a/src/tek.edn +++ b/src/tek.edn @@ -56,15 +56,15 @@ (keys :launch (@q launch)) -(keys :scenes (@s (select :select/scene)) - (@shift/S (scenes add)) - (@up (select :select/scene/dec)) - (@down (select :select/scene/inc))) +(keys :scenes (@shift/S (scenes add)) + (@s (select scene)) + (@up (select scene-dec)) + (@down (select scene-inc))) -(keys :tracks (@t (select :select/track)) - (@shift/T (tracks add)) - (@left (select :select/track/dec)) - (@right (select :select/track/inc))) +(keys :tracks (@shift/T (tracks add)) + (@t (select track)) + (@left (select track-dec)) + (@right (select track-inc))) (keys :global (see :history :saveload) (@f8 dialog :options)