Add which color into theme system

This commit is contained in:
Yifan Song 2023-09-26 13:15:27 +02:00 committed by sxyazi
parent cdd20f8510
commit 6b59f81f20
No known key found for this signature in database
2 changed files with 17 additions and 15 deletions

View file

@ -1,8 +1,8 @@
use core::Ctx; use config::THEME;
use ratatui::{layout, prelude::{Buffer, Constraint, Direction, Rect}, style::Style, widgets::{Block, Clear, Widget}};
use ratatui::{layout, prelude::{Buffer, Constraint, Direction, Rect}, style::{Color, Style}, widgets::{Block, Clear, Widget}};
use super::Side; use super::Side;
use crate::Ctx;
pub(crate) struct Which<'a> { pub(crate) struct Which<'a> {
cx: &'a Ctx, cx: &'a Ctx,
@ -35,11 +35,13 @@ impl Widget for Which<'_> {
let chunks = layout::Layout::new() let chunks = layout::Layout::new()
.direction(Direction::Horizontal) .direction(Direction::Horizontal)
.constraints([Constraint::Ratio(1, 3), Constraint::Ratio(1, 3), Constraint::Ratio(1, 3)]) .constraints(
[Constraint::Ratio(1, 3), Constraint::Ratio(1, 3), Constraint::Ratio(1, 3)].as_ref(),
)
.split(area); .split(area);
Clear.render(area, buf); Clear.render(area, buf);
Block::new().style(Style::new().bg(Color::Rgb(47, 51, 73))).render(area, buf); Block::new().style(Style::new().bg(*THEME.which.block)).render(area, buf);
Side::new(which.times, cands.0).render(chunks[0], buf); Side::new(which.times, cands.0).render(chunks[0], buf);
Side::new(which.times, cands.1).render(chunks[1], buf); Side::new(which.times, cands.1).render(chunks[1], buf);
Side::new(which.times, cands.2).render(chunks[2], buf); Side::new(which.times, cands.2).render(chunks[2], buf);

View file

@ -1,5 +1,5 @@
use config::keymap::Control; use config::{keymap::Control, THEME};
use ratatui::{prelude::{Buffer, Rect}, style::{Color, Style}, text::{Line, Span}, widgets::{Block, List, ListItem, Padding, Widget}}; use ratatui::{prelude::{Buffer, Rect}, style::Style, text::{Line, Span}, widgets::{Block, List, ListItem, Padding, Widget}};
pub(super) struct Side<'a> { pub(super) struct Side<'a> {
times: usize, times: usize,
@ -21,19 +21,19 @@ impl Widget for Side<'_> {
// Keys // Keys
let keys = c.on[self.times..].iter().map(ToString::to_string).collect::<Vec<_>>(); let keys = c.on[self.times..].iter().map(ToString::to_string).collect::<Vec<_>>();
spans.push(Span::raw(" ".repeat(10usize.saturating_sub(keys.join("").len())))); spans.push(Span::raw(" ".repeat(10usize.saturating_sub(keys.join("").len()))));
spans.push(Span::styled(keys[0].clone(), Style::new().fg(Color::LightCyan))); spans.push(Span::styled(keys[0].clone(), THEME.which.key.get()));
spans.extend( spans.extend(
keys keys.iter().skip(1).map(|k| Span::styled(k.to_string(), THEME.which.extend.get())),
.iter()
.skip(1)
.map(|k| Span::styled(k.to_string(), Style::new().fg(Color::DarkGray))),
); );
// Separator // Separator
spans.push(Span::styled("".to_string(), Style::new().fg(Color::DarkGray))); spans.push(Span::styled(
THEME.which.separator.separator.to_string(),
Style::new().fg(*THEME.which.separator.color),
));
// Exec // Exec,
spans.push(Span::styled(c.desc_or_exec(), Style::new().fg(Color::Magenta))); spans.push(Span::styled(c.desc_or_exec(), THEME.which.desc.get()));
ListItem::new(Line::from(spans)) ListItem::new(Line::from(spans))
}) })