wip: rename phrase

This commit is contained in:
🪞👃🪞 2024-10-11 10:18:09 +03:00
parent db2a2efa63
commit 4081c23aea
2 changed files with 21 additions and 2 deletions

View file

@ -30,7 +30,11 @@ pub struct PhrasePool<E: Engine> {
pub phrases: Vec<Arc<RwLock<Phrase>>>,
/// Whether this widget is focused
pub focused: bool,
/// Mode switch
pub mode: Option<PhrasePoolMode>,
}
/// Modes for phrase pool
pub enum PhrasePoolMode { Rename(usize) }
/// A MIDI sequence.
#[derive(Debug, Clone)]
pub struct Phrase {
@ -129,7 +133,8 @@ impl<E: Engine> PhrasePool<E> {
scroll: 0,
phrase: 0,
phrases: vec![Arc::new(RwLock::new(Phrase::default()))],
focused: false
focused: false,
mode: None,
}
}
pub fn phrase (&self) -> &Arc<RwLock<Phrase>> {

View file

@ -52,7 +52,18 @@ impl Content for PhrasePool<Tui> {
} else {
color //Color::Rgb(28, 35, 25)
}))?;
match self.mode {
None => {
if self.focused && i == self.phrase { add(&CORNERS)?; }
},
Some(PhrasePoolMode::Rename(phrase)) => {
if self.focused && i == phrase {
add(&CORNERS)?;
add(&"Rename")?;
}
}
}
Ok(())
})
)
@ -104,6 +115,9 @@ impl Handle<Tui> for PhrasePool<Tui> {
let mut phrase = self.phrases[self.phrase].write().unwrap();
phrase.color = random_color();
},
key!(KeyCode::Char('n')) => { // change name
self.mode = Some(PhrasePoolMode::Rename(self.phrase));
},
_ => return Ok(None),
}
return Ok(Some(true))