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), selected: ArrangerSelection::Clip(0, 0),
scenes: vec![], scenes: vec![],
tracks: vec![], tracks: vec![],
color: Color::Rgb(28, 35, 25).into(), color: TuiTheme::bg().into(),
history: vec![], history: vec![],
mode: ArrangerMode::Vertical(2), mode: ArrangerMode::Vertical(2),
name: Arc::new(RwLock::new(String::new())), name: Arc::new(RwLock::new(String::new())),

View file

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

View file

@ -7,8 +7,8 @@ impl Theme for TuiTheme {}
pub trait Theme { pub trait Theme {
const HOTKEY_FG: Color = Color::Rgb(255, 255, 0); const HOTKEY_FG: Color = Color::Rgb(255, 255, 0);
fn black () -> Color { fn null () -> Color {
Color::Rgb(0, 0, 0) Color::Reset
} }
fn bg () -> Color { fn bg () -> Color {
Color::Rgb(28, 35, 25) Color::Rgb(28, 35, 25)
@ -17,10 +17,10 @@ pub trait Theme {
Color::Rgb(40, 50, 30) Color::Rgb(40, 50, 30)
} }
fn border_fg (focused: bool) -> Color { 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 { 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 { fn separator_fg (_: bool) -> Color {
Color::Rgb(0, 0, 0) Color::Rgb(0, 0, 0)
@ -34,4 +34,25 @@ pub trait Theme {
fn status_bar_bg () -> Color { fn status_bar_bg () -> Color {
Color::Rgb(28, 35, 25) 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 // TODO: Display phrases always in order of appearance
render!(|self: PhraseListView<'a>|{ render!(|self: PhraseListView<'a>|{
let Self { title, focused, entered, phrases, index, mode } = self; let Self { title, focused, entered, phrases, index, mode } = self;
let border_bg = if *focused {Color::Rgb(40, 50, 30)} else {Color::Reset}; let border_bg = if *focused {TuiTheme::bg()} else {TuiTheme::null()};
let border_color = if *entered {Color::Rgb(100, 110, 40)} else {Color::Rgb(70, 80, 50)}; let border_color = if *entered {TuiTheme::bo1()} else {TuiTheme::bo2()};
let title_color = if *focused {Color::Rgb(150, 160, 90)} else {Color::Rgb(120, 130, 100)}; let title_color = if *focused {TuiTheme::ti1()} else {TuiTheme::ti2()};
let upper_left = format!("{title}"); let upper_left = format!("{title}");
let upper_right = format!("({})", phrases.len()); let upper_right = format!("({})", phrases.len());
Tui::bg(border_bg, lay!(move|add|{ Tui::bg(border_bg, lay!(move|add|{

View file

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