turn Plugin keymap to match statement

This commit is contained in:
🪞👃🪞 2024-09-10 11:59:14 +03:00
parent cd8a808c21
commit 39407c9760
8 changed files with 124 additions and 129 deletions

View file

@ -26,39 +26,41 @@ impl Widget for AddSampleModal {
type Engine = Tui;
fn layout (&self, to: [u16;4]) -> Perhaps<[u16;4]> {
todo!()
//Align::Center(()).layout(to)
}
fn render (&self, to: &mut Tui) -> Perhaps<[u16;4]> {
let area = to.area();
to.make_dim();
let area = center_box(
area,
64.max(area.w().saturating_sub(8)),
20.max(area.w().saturating_sub(8)),
);
to.fill_fg(area, Color::Reset);
to.fill_bg(area, Nord::bg_lo(true, true));
to.fill_char(area, ' ');
to.blit(&format!("{}", &self.dir.to_string_lossy()), area.x()+2, area.y()+1, Some(Style::default().bold()))?;
to.blit(&"Select sample:", area.x()+2, area.y()+2, Some(Style::default().bold()))?;
for (i, (is_dir, name)) in self.subdirs.iter()
.map(|path|(true, path))
.chain(self.files.iter().map(|path|(false, path)))
.enumerate()
.skip(self.offset)
{
if i >= area.h() as usize - 4 {
break
}
let t = if is_dir { "" } else { "" };
let line = format!("{t} {}", name.to_string_lossy());
let line = &line[..line.len().min(area.w() as usize - 4)];
to.blit(&line, area.x() + 2, area.y() + 3 + i as u16, Some(if i == self.cursor {
Style::default().green()
} else {
Style::default().white()
}))?;
}
Lozenge(Style::default()).draw(to)
todo!()
//let area = to.area();
//to.make_dim();
//let area = center_box(
//area,
//64.max(area.w().saturating_sub(8)),
//20.max(area.w().saturating_sub(8)),
//);
//to.fill_fg(area, Color::Reset);
//to.fill_bg(area, Nord::bg_lo(true, true));
//to.fill_char(area, ' ');
//to.blit(&format!("{}", &self.dir.to_string_lossy()), area.x()+2, area.y()+1, Some(Style::default().bold()))?;
//to.blit(&"Select sample:", area.x()+2, area.y()+2, Some(Style::default().bold()))?;
//for (i, (is_dir, name)) in self.subdirs.iter()
//.map(|path|(true, path))
//.chain(self.files.iter().map(|path|(false, path)))
//.enumerate()
//.skip(self.offset)
//{
//if i >= area.h() as usize - 4 {
//break
//}
//let t = if is_dir { "" } else { "" };
//let line = format!("{t} {}", name.to_string_lossy());
//let line = &line[..line.len().min(area.w() as usize - 4)];
//to.blit(&line, area.x() + 2, area.y() + 3 + i as u16, Some(if i == self.cursor {
//Style::default().green()
//} else {
//Style::default().white()
//}))?;
//}
//Lozenge(Style::default()).draw(to)
}
}
impl Handle<Tui> for AddSampleModal {
@ -282,4 +284,3 @@ impl Sample {
Ok(sample)
}
}