ihalila / pancurses

A Rust curses library, supports Unix platforms and Windows
MIT License
396 stars 44 forks source link

non-blokcing getch ? #86

Closed alexzanderr closed 2 years ago

alexzanderr commented 2 years ago

hello. i just want to get a character in non blocking way.

use pancurses::{
    initscr,
    endwin,
    Input,
    noecho,
};

use rand::{
    thread_rng,
    Rng,
};

fn main() {
    let window = initscr();
    window.printw("Type things, press delete to quit\n");
    window.refresh();
    window.keypad(true);
    noecho();
    loop {
        let rn = thread_rng().gen_range(1..1000);
        window.mv(1, 1);
        window.addstr(format!("{}-------------{}", rn, rn));
        window.mv(10, 1);

        // how can get here a char and let the loop continue ?
        match window.getch() {
            Some(Input::Character(c)) => {
                window.addch(c);
            },
            Some(Input::KeyDC) => break,
            Some(input) => {
                window.addstr(&format!("{:?}", input));
            },
            None => (),
        }
    }
    endwin();
}
Wrenderbender commented 2 years ago

Is Window.nodelay() what you are looking for Relevant link https://docs.rs/pancurses/latest/pancurses/struct.Window.html#method.nodelay

alexzanderr commented 2 years ago

thanks

Wrenderbender commented 2 years ago

No problem :)