removing direct uses of Color::Rgb

This commit is contained in:
🪞👃🪞 2024-12-10 19:46:09 +01:00
parent 387bc711e5
commit 5550631254
5 changed files with 45 additions and 24 deletions

View file

@ -19,7 +19,7 @@ impl TryFrom<&Arc<RwLock<JackClient>>> for ArrangerTui {
selected: ArrangerSelection::Clip(0, 0),
scenes: vec![],
tracks: vec![],
color: Color::Rgb(28, 35, 25).into(),
color: TuiTheme::bg().into(),
history: vec![],
mode: ArrangerMode::Vertical(2),
name: Arc::new(RwLock::new(String::new())),

View file

@ -345,12 +345,12 @@ impl From<&SequencerStatusBar> for SequencerMode {
}
}
}
render!(|self:SequencerMode|{
let orange = Color::Rgb(255,128,0);
let light = Color::Rgb(50,50,50);
let white = Color::Rgb(255,255,255);
let yellow = Color::Rgb(255,255,0);
let black = Color::Rgb(0,0,0);
render!(|self: SequencerMode|{
let black = TuiTheme::g(0);
let light = TuiTheme::g(50);
let white = TuiTheme::g(255);
let orange = TuiTheme::orange();
let yellow = TuiTheme::yellow();
row!([
Tui::bg(orange, Tui::fg(black, Tui::bold(true, self.mode))),
Tui::bg(light, Tui::fg(white, row!((prefix, hotkey, suffix) in self.help.iter() => {
@ -374,8 +374,8 @@ impl<'a> From<&'a SequencerStatusBar> for SequencerStats<'a> {
}
}
render!(|self:SequencerStats<'a>|{
let orange = Color::Rgb(255,128,0);
let dark = Color::Rgb(25,25,25);
let orange = TuiTheme::orange();
let dark = TuiTheme::g(25);
let cpu = &self.cpu;
let res = &self.res;
let size = &self.size;

View file

@ -7,8 +7,8 @@ impl Theme for TuiTheme {}
pub trait Theme {
const HOTKEY_FG: Color = Color::Rgb(255, 255, 0);
fn black () -> Color {
Color::Rgb(0, 0, 0)
fn null () -> Color {
Color::Reset
}
fn bg () -> Color {
Color::Rgb(28, 35, 25)
@ -17,10 +17,10 @@ pub trait Theme {
Color::Rgb(40, 50, 30)
}
fn border_fg (focused: bool) -> Color {
if focused { Color::Rgb(100, 110, 40) } else { Color::Rgb(70, 80, 50) }
if focused { Self::bo1() } else { Self::bo2() }
}
fn title_fg (focused: bool) -> Color {
if focused { Color::Rgb(150, 160, 90) } else { Color::Rgb(120, 130, 100) }
if focused { Self::ti1() } else { Self::ti2() }
}
fn separator_fg (_: bool) -> Color {
Color::Rgb(0, 0, 0)
@ -34,4 +34,25 @@ pub trait Theme {
fn status_bar_bg () -> Color {
Color::Rgb(28, 35, 25)
}
fn bo1 () -> Color {
Color::Rgb(100, 110, 40)
}
fn bo2 () -> Color {
Color::Rgb(70, 80, 50)
}
fn ti1 () -> Color {
Color::Rgb(150, 160, 90)
}
fn ti2 () -> Color {
Color::Rgb(120, 130, 100)
}
fn orange () -> Color {
Color::Rgb(255,128,0)
}
fn yellow () -> Color {
Color::Rgb(255,255,0)
}
fn g (g: u8) -> Color {
Color::Rgb(g, g, g)
}
}

View file

@ -122,9 +122,9 @@ impl<'a, T: HasPhraseList> From<&'a T> for PhraseListView<'a> {
// TODO: Display phrases always in order of appearance
render!(|self: PhraseListView<'a>|{
let Self { title, focused, entered, phrases, index, mode } = self;
let border_bg = if *focused {Color::Rgb(40, 50, 30)} else {Color::Reset};
let border_color = if *entered {Color::Rgb(100, 110, 40)} else {Color::Rgb(70, 80, 50)};
let title_color = if *focused {Color::Rgb(150, 160, 90)} else {Color::Rgb(120, 130, 100)};
let border_bg = if *focused {TuiTheme::bg()} else {TuiTheme::null()};
let border_color = if *entered {TuiTheme::bo1()} else {TuiTheme::bo2()};
let title_color = if *focused {TuiTheme::ti1()} else {TuiTheme::ti2()};
let upper_left = format!("{title}");
let upper_right = format!("({})", phrases.len());
Tui::bg(border_bg, lay!(move|add|{

View file

@ -10,15 +10,15 @@ pub struct PhraseSelector {
// TODO: Display phrases always in order of appearance
render!(|self: PhraseSelector|{
let Self { title, phrase, focused, entered } = self;
let border_bg = if *focused {Color::Rgb(40, 50, 30)} else { Color::Reset };
let border_color = if *focused {Color::Rgb(100, 110, 40)} else {Color::Rgb(70, 80, 50)};
let border_bg = if *focused {TuiTheme::border_bg()} else {TuiTheme::null()};
let border_color = if *focused {TuiTheme::bo1()} else {TuiTheme::bo2()};
let border = Lozenge(Style::default().bg(border_bg).fg(border_color));
let title_color = if phrase.is_some() {
Color::Rgb(200,200,200)
TuiTheme::g(200)
} else if *focused {
Color::Rgb(150, 160, 90)
TuiTheme::ti1()
} else {
Color::Rgb(120, 130, 100)
TuiTheme::ti2()
};
Tui::fixed_y(2, lay!(move|add|{
if phrase.is_none() {
@ -30,10 +30,10 @@ render!(|self: PhraseSelector|{
let Phrase { ref name, color, length, .. } = *phrase.read().unwrap();
add(&Tui::pull_y(0, Tui::inset_x(0, Tui::bg(color.dark.rgb, Tui::fill_x(col!([
Tui::fill_x(lay!([
Tui::fill_x(Tui::at_w(Tui::fg(Color::Rgb(255,255,255), format!(" ")))),
Tui::fill_x(Tui::at_e(Tui::fg(Color::Rgb(255,255,255), PhraseLength::new(length, None))))
Tui::fill_x(Tui::at_w(Tui::fg(TuiTheme::g(255), format!(" ")))),
Tui::fill_x(Tui::at_e(Tui::fg(TuiTheme::g(255), PhraseLength::new(length, None))))
])),
Tui::bold(true, Tui::fg(Color::Rgb(255,255,255), format!(" {name}")))
Tui::bold(true, Tui::fg(TuiTheme::g(255), format!(" {name}")))
]))))))?;
}
Ok(())