mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-05-01 06:30:13 +02:00
wip: providing values to scrollbars
This commit is contained in:
parent
6755f972f3
commit
7b3bbc5590
|
@ -21,25 +21,25 @@ impl Tek {
|
|||
fn scene_scrollbar (&self) -> impl Content<TuiOut> + use<'_> {
|
||||
Fill::y(Fixed::x(1, ScrollbarV {
|
||||
offset: self.scene_scroll,
|
||||
length: 0,
|
||||
length: self.h_tracks_area() as usize,
|
||||
total: self.tracks.len()
|
||||
}))
|
||||
}
|
||||
fn track_scrollbar (&self) -> impl Content<TuiOut> + use<'_> {
|
||||
Fill::x(Fixed::y(1, ScrollbarH {
|
||||
offset: self.track_scroll,
|
||||
length: 0,// self.view_track_count(),
|
||||
length: self.w_tracks() as usize,
|
||||
total: self.tracks.len()
|
||||
}))
|
||||
}
|
||||
pub fn view_scenes (&self) -> impl Content<TuiOut> + use<'_> {
|
||||
let w_full = self.w();
|
||||
let w = self.w_tracks_area();
|
||||
let h_area = self.h_tracks_area();
|
||||
let editing = self.is_editing();
|
||||
let w = self.w_tracks_area();
|
||||
let w_full = self.w();
|
||||
let h = self.h_scenes(editing, Self::H_SCENE, Self::H_EDITOR);
|
||||
let h_area = self.h_tracks_area();
|
||||
let selected_track = self.selected().track();
|
||||
let selected_scene = self.selected().scene();
|
||||
let h = self.h_scenes(editing, Self::H_SCENE, Self::H_EDITOR);
|
||||
Tui::bg(Reset, Bsp::s(self.track_scrollbar(), Bsp::e(self.scene_scrollbar(),
|
||||
Fixed::y(self.h_tracks_area(), self.row(self.w_tracks_area(), h,
|
||||
Map::new(
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
use crate::*;
|
||||
impl Tek {
|
||||
pub(crate) fn w_tracks_area (&self) -> u16 {
|
||||
self.w().saturating_sub(2 * self.w_sidebar())
|
||||
}
|
||||
pub(crate) fn w_tracks (&self, editing: bool, bigger: usize) -> u16 {
|
||||
self.tracks_sizes(editing, bigger).last().map(|(_, _, _, x)|x as u16).unwrap_or(0)
|
||||
}
|
||||
pub(crate) fn w_tracks_area (&self) -> u16 {
|
||||
self.w().saturating_sub(2 * self.w_sidebar())
|
||||
}
|
||||
pub(crate) fn h_tracks_area (&self) -> u16 {
|
||||
self.h().saturating_sub(self.h_inputs() + self.h_outputs() + 10)
|
||||
}
|
||||
|
|
|
@ -126,6 +126,10 @@ impl Content<TuiOut> for ScrollbarV {
|
|||
cell.set_fg(Rgb(255, 255, 255));
|
||||
cell.set_bg(Rgb(0, 0, 0));
|
||||
cell.set_char(Self::ICON_INC[h as usize - i]);
|
||||
} else if false {
|
||||
cell.set_fg(Rgb(255, 255, 255));
|
||||
cell.set_bg(Reset);
|
||||
cell.set_char('‖'); // ━
|
||||
} else {
|
||||
cell.set_fg(Rgb(0, 0, 0));
|
||||
cell.set_bg(Reset);
|
||||
|
@ -159,10 +163,14 @@ impl Content<TuiOut> for ScrollbarH {
|
|||
cell.set_fg(Rgb(255, 255, 255));
|
||||
cell.set_bg(Rgb(0, 0, 0));
|
||||
cell.set_char(Self::ICON_INC[w as usize - i]);
|
||||
} else if false {
|
||||
cell.set_fg(Rgb(255, 255, 255));
|
||||
cell.set_bg(Reset);
|
||||
cell.set_char('━');
|
||||
} else {
|
||||
cell.set_fg(Rgb(0, 0, 0));
|
||||
cell.set_bg(Reset);
|
||||
cell.set_char('╌'); // ━
|
||||
cell.set_char('╌');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -172,10 +180,10 @@ impl Content<TuiOut> for ScrollbarH {
|
|||
/// A cell that takes up 3 rows on its own,
|
||||
/// but stacks, giving (N+1)*2 rows per N cells.
|
||||
pub struct Phat<T> {
|
||||
pub width: u16,
|
||||
pub height: u16,
|
||||
pub content: T,
|
||||
pub colors: [Color;4],
|
||||
pub width: u16,
|
||||
pub height: u16,
|
||||
pub content: T,
|
||||
pub colors: [Color;4],
|
||||
}
|
||||
impl<T> Phat<T> {
|
||||
/// A phat line
|
||||
|
|
Loading…
Reference in a new issue