aboutsummaryrefslogblamecommitdiffstats
path: root/test/attrs.rs
blob: 6d8086b79ea449a0674b810c4b0b30c3365f3124 (plain) (tree)













































                                                                            
extern mod term;

fn main () {
    term::info::init();
    print(term::info::exit_attribute_mode());
    loop {
        print("Attribute? ");

        let attr = io::stdin().read_line();

        if attr.starts_with("fg:") || attr.starts_with("bg:") {
            let set = if attr.starts_with("fg:") {
                |c| { print(term::info::set_a_foreground(c)) }
            }
            else {
                |c| { print(term::info::set_a_background(c)) }
            };

            match attr.slice(3, attr.len()) {
                &"black"   => set(term::info::ColorBlack),
                &"red"     => set(term::info::ColorRed),
                &"green"   => set(term::info::ColorGreen),
                &"yellow"  => set(term::info::ColorYellow),
                &"blue"    => set(term::info::ColorBlue),
                &"magenta" => set(term::info::ColorMagenta),
                &"cyan"    => set(term::info::ColorCyan),
                &"white"   => set(term::info::ColorWhite),
                _         => (),
            }
        }
        else {
            match attr {
                ~"underline"   => print(term::info::enter_underline_mode()),
                ~"standout"    => print(term::info::enter_standout_mode()),
                ~"reverse"     => print(term::info::enter_reverse_mode()),
                ~"bold"        => print(term::info::enter_bold_mode()),
                ~"blink"       => print(term::info::enter_blink_mode()),
                ~"reset"       => print(term::info::exit_attribute_mode()),
                ~"reset_color" => print(term::info::orig_pair()),
                ~""            => break,
                _             => (),
            }
        }
    }
    print(term::info::exit_attribute_mode());
}