use std::convert::TryFrom;
use ncursesw::WINDOW;
use crate::{Position, NCurseswWinError, gen::HasHandle};
pub trait HasYAxis: HasHandle<WINDOW> {
fn getbegy(&self) -> result!(u16) {
Ok(u16::try_from(ncursesw::getbegy(self._handle())?)?)
}
fn getmaxy(&self) -> result!(u16) {
Ok(u16::try_from(ncursesw::getmaxy(self._handle())?)?)
}
fn getcury(&self) -> result!(u16) {
Ok(u16::try_from(ncursesw::getcury(self._handle())?)?)
}
fn insdelln(&self, position: Position, lines: u16) -> result!(()) {
let lines = match position {
Position::InsertAbove => i32::try_from(lines)?,
Position::DeleteBelow => {
let neg = i32::try_from(lines)?.overflowing_neg();
neg.0
}
};
Ok(ncursesw::winsdelln(self._handle(), lines)?)
}
fn is_linetouched(&self, line: u16) -> result!(bool) {
Ok(ncursesw::is_linetouched(self._handle(), i32::try_from(line)?))
}
}