mirror of
https://codeberg.org/unspeaker/tek.git
synced 2026-08-28 04:46:58 +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<Arc<str>>
|
||||||
+ Namespace<ItemTheme>
|
+ Namespace<ItemTheme>
|
||||||
{
|
{
|
||||||
#[command(SetSize = "scene/size")]
|
#[command(SetSize = "size")]
|
||||||
fn scene_set_size (&mut self, _size: usize) -> Perhaps<SceneCommand>
|
fn scene_set_size (&mut self, _size: usize) -> Perhaps<SceneCommand>
|
||||||
where Self: Namespace<usize>
|
where Self: Namespace<usize>
|
||||||
{
|
{
|
||||||
todo!()
|
todo!()
|
||||||
}
|
}
|
||||||
#[command(SetZoom = "scene/zoom")]
|
#[command(SetZoom = "zoom")]
|
||||||
fn scene_set_zoom (&mut self, _size: usize) -> Perhaps<SceneCommand>
|
fn scene_set_zoom (&mut self, _size: usize) -> Perhaps<SceneCommand>
|
||||||
where Self: Namespace<usize>
|
where Self: Namespace<usize>
|
||||||
{
|
{
|
||||||
todo!()
|
todo!()
|
||||||
}
|
}
|
||||||
#[command(SetName = "scene/name")]
|
#[command(SetName = "name")]
|
||||||
fn scene_set_name (&mut self, name: Arc<str>) -> Perhaps<SceneCommand>
|
fn scene_set_name (&mut self, name: Arc<str>) -> Perhaps<SceneCommand>
|
||||||
where Self: Namespace<Arc<str>>
|
where Self: Namespace<Arc<str>>
|
||||||
{
|
{
|
||||||
|
|
@ -105,7 +105,7 @@ pub trait SceneController: HasScene
|
||||||
|name|SceneCommand::SetName { name }
|
|name|SceneCommand::SetName { name }
|
||||||
)).transpose()?.flatten())
|
)).transpose()?.flatten())
|
||||||
}
|
}
|
||||||
#[command(SetColor = "scene/color")]
|
#[command(SetColor = "color")]
|
||||||
fn scene_set_color (&mut self, color: ItemTheme) -> Perhaps<SceneCommand>
|
fn scene_set_color (&mut self, color: ItemTheme) -> Perhaps<SceneCommand>
|
||||||
where Self: Namespace<ItemTheme>
|
where Self: Namespace<ItemTheme>
|
||||||
{
|
{
|
||||||
|
|
@ -171,6 +171,9 @@ pub trait HasScenes: AsRef<Vec<Scene>> + AsMut<Vec<Scene>> {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<T: HasScenes
|
impl<T: HasScenes
|
||||||
|
+ HasTracks
|
||||||
|
+ HasTrackScroll
|
||||||
|
+ HasJack<'static>
|
||||||
+ Namespace<usize>
|
+ Namespace<usize>
|
||||||
+ Namespace<Option<ItemTheme>>
|
+ Namespace<Option<ItemTheme>>
|
||||||
+ Namespace<Option<Arc<str>>>
|
+ Namespace<Option<Arc<str>>>
|
||||||
|
|
@ -178,10 +181,20 @@ impl<T: HasScenes
|
||||||
|
|
||||||
#[tek_proc::commands(ScenesCommand)]
|
#[tek_proc::commands(ScenesCommand)]
|
||||||
pub trait ScenesController: HasScenes
|
pub trait ScenesController: HasScenes
|
||||||
|
+ HasTracks
|
||||||
|
+ HasTrackScroll
|
||||||
|
+ HasJack<'static>
|
||||||
+ Namespace<usize>
|
+ Namespace<usize>
|
||||||
+ Namespace<Option<ItemTheme>>
|
+ Namespace<Option<ItemTheme>>
|
||||||
+ Namespace<Option<Arc<str>>>
|
+ 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
|
// TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -262,27 +275,27 @@ impl HasSceneScroll for App {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn view_scene_name (
|
pub fn view_scene_name (
|
||||||
select: &Selection,
|
select: &Selection,
|
||||||
editor: Option<&MidiEditor>,
|
editor: Option<&MidiEditor>,
|
||||||
index: usize,
|
index: usize,
|
||||||
scene: &Scene,
|
scene: &Scene,
|
||||||
editing: bool
|
editing: bool
|
||||||
) -> impl Draw<Tui> {
|
) -> impl Draw<Tui> {
|
||||||
let h = if select.scene() == Some(index) && let Some(_editor) = editor {
|
let h = if select.scene() == Some(index) && let Some(_editor) = editor {
|
||||||
7
|
7
|
||||||
} else {
|
} else {
|
||||||
Scene::DEFAULT_HEIGHT as u16
|
Scene::DEFAULT_HEIGHT as u16
|
||||||
};
|
};
|
||||||
let a = east(format!("·s{index:02} "),
|
let a = east(format!("·s{index:02} "),
|
||||||
fg(g(255), bold(true, &scene.name))).align_w().full_w();
|
fg(g(255), bold(true, &scene.name))).align_w().full_w();
|
||||||
let b = when(select.scene() == Some(index) && editing, south(
|
let b = when(select.scene() == Some(index) && editing, south(
|
||||||
editor.as_ref().map(|e|e.clip_status()),
|
editor.as_ref().map(|e|e.clip_status()),
|
||||||
editor.as_ref().map(|e|e.edit_status())).align_nw().full_wh());
|
editor.as_ref().map(|e|e.edit_status())).align_nw().full_wh());
|
||||||
let c = if select.scene() == Some(index) {
|
let c = if select.scene() == Some(index) {
|
||||||
scene.color.light.term
|
scene.color.light.term
|
||||||
} else {
|
} else {
|
||||||
scene.color.base.term
|
scene.color.base.term
|
||||||
};
|
};
|
||||||
bg(c, south(a, b).align_nw()).exact_wh(20, h)
|
bg(c, south(a, b).align_nw()).exact_wh(20, h)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
16
src/tek.edn
16
src/tek.edn
|
|
@ -56,15 +56,15 @@
|
||||||
|
|
||||||
(keys :launch (@q launch))
|
(keys :launch (@q launch))
|
||||||
|
|
||||||
(keys :scenes (@s (select :select/scene))
|
(keys :scenes (@shift/S (scenes add))
|
||||||
(@shift/S (scenes add))
|
(@s (select scene))
|
||||||
(@up (select :select/scene/dec))
|
(@up (select scene-dec))
|
||||||
(@down (select :select/scene/inc)))
|
(@down (select scene-inc)))
|
||||||
|
|
||||||
(keys :tracks (@t (select :select/track))
|
(keys :tracks (@shift/T (tracks add))
|
||||||
(@shift/T (tracks add))
|
(@t (select track))
|
||||||
(@left (select :select/track/dec))
|
(@left (select track-dec))
|
||||||
(@right (select :select/track/inc)))
|
(@right (select track-inc)))
|
||||||
|
|
||||||
(keys :global (see :history :saveload)
|
(keys :global (see :history :saveload)
|
||||||
(@f8 dialog :options)
|
(@f8 dialog :options)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue