#![allow(non_snake_case)]
#![allow(deprecated)]
use std::str::FromStr;
use ncursesw::{*, normal::*};
fn main() {
if let Err(source) = main_routine() {
println!("error: {}", source);
}
}
fn main_routine() -> Result<(), NCurseswError> {
let stdscr = initscr()?;
if has_colors() {
start_color()?;
let yellow = Color::new(ColorPalette::from_str("yellow")?);
let blue = Color::new(ColorPalette::from_str("blue")?);
let green = Color::new(ColorPalette::from_str("blue")?);
let color_pair0 = ColorPair::default();
let color_pair1 = ColorPair::new(1, Colors::new(yellow, blue))?;
let color_pair2 = ColorPair::new(2, Colors::new(yellow, green))?;
let color_pair3 = ColorPair::new(3, Colors::new(blue, yellow))?;
let color_pair4 = ColorPair::new(4, Colors::new(blue, green))?;
let color_pair5 = ColorPair::new(5, Colors::new(green, yellow))?;
let color_pair6 = ColorPair::new(6, Colors::new(green, blue))?;
addstr(color_pair_info(color_pair0))?;
addstr(color_pair_info(color_pair1))?;
addstr(color_pair_info(color_pair2))?;
addstr(color_pair_info(color_pair3))?;
addstr(color_pair_info(color_pair4))?;
addstr(color_pair_info(color_pair5))?;
addstr(color_pair_info(color_pair6))?;
} else {
addstr("terminal has no color support!!!")?;
}
addstr("\n\nhit <return> to continue ")?;
getch()?;
delwin(stdscr)?;
endwin()
}
fn color_pair_info(color_pair: ColorPair) -> String {
format!("color pair {} : attribute 0b{:032b}\n", color_pair.number(), COLOR_PAIR(i32::from(color_pair.number())))
}