extern crate ncurses;
extern crate liste;
use liste::controller::Controller;
use liste::window::Window;
use liste::model::Subscription;
use liste::model::ListModel;
use std::fmt::Debug;
use std::process;
use std::time::{Duration, Instant};
use std::thread;
static COLOR_BACKGROUND: i16 = 16;
fn main() {
ncurses::initscr();
if !ncurses::has_colors() {
ncurses::endwin();
println!("Your terminal does not support color");
process::exit(1);
}
ncurses::noecho(); ncurses::keypad(ncurses::stdscr(), true);
ncurses::curs_set(ncurses::CURSOR_VISIBILITY::CURSOR_INVISIBLE); ncurses::timeout(0);
ncurses::start_color(); ncurses::init_pair(1, ncurses::COLOR_BLACK, ncurses::COLOR_WHITE);
const MS_PER_FRAME: u64 = 60;
let mut controller = Controller::new();
controller.on_init();
loop {
let ch = ncurses::getch();
match ch {
ncurses::KEY_DOWN => {
controller.on_next_active_sub();
},
ncurses::KEY_UP => {
controller.on_previous_active_sub();
},
113 => break, _ => {} }
thread::sleep(Duration::from_millis(MS_PER_FRAME));
}
ncurses::endwin();
}