use crate::*; render!(Sequencer |self, buf, area| { fill_bg(buf, area, Nord::bg_lo(self.focused, self.entered)); self.horizontal_draw(buf, area)?; if self.focused && self.entered { Corners(Style::default().green().not_dim()).draw(buf, area)?; } Ok(area) }); impl Sequencer { /// Select which pattern to display. This pre-renders it to the buffer at full resolution. pub fn show (&mut self, phrase: Option<&Arc>>) -> Usually<()> { self.phrase = phrase.map(Clone::clone); if let Some(ref phrase) = self.phrase { let width = usize::MAX.min(phrase.read().unwrap().length); let mut buffer = BigBuffer::new(width, 64); let phrase = phrase.read().unwrap(); fill_seq_bg(&mut buffer, phrase.length, self.ppq)?; fill_seq_fg(&mut buffer, &phrase)?; self.buffer = buffer; } else { self.buffer = Default::default(); } Ok(()) } fn style_focus (&self) -> Option