You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tui-rs/src/style.rs

62 lines
3.1 KiB
Rust

8 years ago
use termion;
#[derive(Debug, Clone, Copy, Hash)]
8 years ago
pub enum Color {
Black,
Red,
Green,
Yellow,
Magenta,
Cyan,
Gray,
DarkGray,
LightRed,
LightGreen,
LightYellow,
LightMagenta,
LightCyan,
White,
Rgb(u8, u8, u8),
}
impl Color {
pub fn fg(&self) -> String {
match *self {
Color::Black => format!("{}", termion::color::Fg(termion::color::Black)),
Color::Red => format!("{}", termion::color::Fg(termion::color::Red)),
Color::Green => format!("{}", termion::color::Fg(termion::color::Green)),
Color::Yellow => format!("{}", termion::color::Fg(termion::color::Yellow)),
Color::Magenta => format!("{}", termion::color::Fg(termion::color::Magenta)),
Color::Cyan => format!("{}", termion::color::Fg(termion::color::Cyan)),
Color::Gray => format!("{}", termion::color::Fg(termion::color::Rgb(146, 131, 116))),
Color::DarkGray => format!("{}", termion::color::Fg(termion::color::Rgb(80, 73, 69))),
Color::LightRed => format!("{}", termion::color::Fg(termion::color::LightRed)),
Color::LightGreen => format!("{}", termion::color::Fg(termion::color::LightGreen)),
Color::LightYellow => format!("{}", termion::color::Fg(termion::color::LightYellow)),
Color::LightMagenta => format!("{}", termion::color::Fg(termion::color::LightMagenta)),
Color::LightCyan => format!("{}", termion::color::Fg(termion::color::LightCyan)),
Color::White => format!("{}", termion::color::Fg(termion::color::White)),
Color::Rgb(r, g, b) => format!("{}", termion::color::Fg(termion::color::Rgb(r, g, b))),
}
}
pub fn bg(&self) -> String {
match *self {
Color::Black => format!("{}", termion::color::Bg(termion::color::Black)),
Color::Red => format!("{}", termion::color::Bg(termion::color::Red)),
Color::Green => format!("{}", termion::color::Bg(termion::color::Green)),
Color::Yellow => format!("{}", termion::color::Bg(termion::color::Yellow)),
Color::Magenta => format!("{}", termion::color::Bg(termion::color::Magenta)),
Color::Cyan => format!("{}", termion::color::Bg(termion::color::Cyan)),
Color::Gray => format!("{}", termion::color::Bg(termion::color::Rgb(146, 131, 116))),
Color::DarkGray => format!("{}", termion::color::Bg(termion::color::Rgb(80, 73, 69))),
Color::LightRed => format!("{}", termion::color::Bg(termion::color::LightRed)),
Color::LightGreen => format!("{}", termion::color::Bg(termion::color::LightGreen)),
Color::LightYellow => format!("{}", termion::color::Bg(termion::color::LightYellow)),
Color::LightMagenta => format!("{}", termion::color::Bg(termion::color::LightMagenta)),
Color::LightCyan => format!("{}", termion::color::Bg(termion::color::LightCyan)),
Color::White => format!("{}", termion::color::Bg(termion::color::White)),
Color::Rgb(r, g, b) => format!("{}", termion::color::Bg(termion::color::Rgb(r, g, b))),
}
}
}