use pancurses::chtype;
use pancurses::Window;
pub trait WindowExt {
fn get_mid_yx(&self, len: (i32, i32)) -> (i32, i32);
fn get_mid_y(&self, len: i32) -> i32;
fn get_mid_x(&self, len: i32) -> i32;
fn with_attr<T: Into<chtype>>(&self, attrs: T, f: fn(&Window));
}
impl WindowExt for Window {
#[inline]
fn get_mid_y(&self, len: i32) -> i32 {
(self.get_max_y() - len) / 2
}
#[inline]
fn get_mid_x(&self, len: i32) -> i32 {
(self.get_max_x() - len) / 2
}
#[inline]
fn get_mid_yx(&self, (y, x): (i32, i32)) -> (i32, i32) {
(self.get_mid_y(y), self.get_mid_x(x))
}
fn with_attr<T: Into<chtype>>(&self, attrs: T, f: fn(&Window)) {
let i = attrs.into();
self.attron(i);
f(self);
self.attroff(i);
}
}