mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-07 12:16:42 +01:00
fix: collect enum, break: Render for Option<&T>
This commit is contained in:
parent
72f47bc837
commit
33bdf65e8d
8 changed files with 37 additions and 33 deletions
|
|
@ -20,8 +20,6 @@ impl ArrangerViewMode {
|
|||
}
|
||||
}
|
||||
|
||||
use std::iter::IntoIterator;
|
||||
|
||||
struct Split<'a>(Collection<'a>, Direction);
|
||||
|
||||
impl<'a> Split<'a> {
|
||||
|
|
@ -37,8 +35,8 @@ impl<'a> Render for Split<'a> {
|
|||
}
|
||||
|
||||
impl<'a> Collect<'a> for Split<'a> {
|
||||
fn add (mut self, item: Box<dyn Render>) -> Self {
|
||||
self.0 = self.0.add(item);
|
||||
fn add_box (mut self, item: Box<dyn Render + 'a>) -> Self {
|
||||
self.0 = self.0.add_box(item);
|
||||
self
|
||||
}
|
||||
fn add_ref (mut self, item: &'a dyn Render) -> Self {
|
||||
|
|
@ -79,10 +77,10 @@ render!(Arranger |self, buf, area| {
|
|||
});
|
||||
|
||||
if let Some(direction) = self.show_sequencer {
|
||||
layout = layout.add(Box::new(Split::new(direction)
|
||||
.add(arrangement)));
|
||||
let sequencer = Box::new(Split::new(direction).add_box(arrangement));
|
||||
layout = layout.add_box(sequencer);
|
||||
} else {
|
||||
layout = layout.add(arrangement);
|
||||
layout = layout.add_box(arrangement);
|
||||
}
|
||||
|
||||
layout.render(buf, area)
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ use crate::*;
|
|||
pub fn draw (state: &Arranger, buf: &mut Buffer, mut area: Rect) -> Usually<Rect> {
|
||||
area.height = area.height.min((2 + state.tracks.len() * 2) as u16);
|
||||
Layered([
|
||||
&to_fill_bg(Nord::bg_lo(state.focused, state.entered)),
|
||||
&FillBg(Nord::bg_lo(state.focused, state.entered)),
|
||||
&Split::right([
|
||||
&track_name_column(state),
|
||||
&track_mon_column(state),
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ pub fn draw (
|
|||
area.height = 2 + (rows[rows.len() - 1].1 / 96) as u16;
|
||||
let offset = 3 + scene_name_max_len(state.scenes.as_ref()) as u16;
|
||||
Layered([
|
||||
&to_fill_bg(Nord::bg_lo(state.focused, state.entered)),
|
||||
&FillBg(Nord::bg_lo(state.focused, state.entered)),
|
||||
&column_separators(offset, cols),
|
||||
&cursor_focus(state, offset, cols, rows),
|
||||
&Split::down([
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ render!(TransportToolbar |self, buf, area| {
|
|||
// Beats per minute
|
||||
&|buf: &mut Buffer, Rect { x, y, .. }: Rect|{
|
||||
"BPM".blit(buf, x, y, Some(not_dim))?;
|
||||
let width = format!("{}.{:03}", bpm, bpm % 1).blit(buf, x, y + 1, Some(not_dim_bold))?.width;
|
||||
let width = format!("{}.{:03}", bpm, bpm * 1000 % 1000).blit(buf, x, y + 1, Some(not_dim_bold))?.width;
|
||||
let area = Rect { x, y, width: (width + 2).max(10), height: 2 };
|
||||
if self.focused && self.entered && self.selected == TransportFocus::BPM {
|
||||
corners.draw(buf, Rect { x: area.x - 1, ..area })?;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue