use std::convert::{TryFrom, TryInto};
use ncursesw::{Changed, WINDOW};
use crate::{Origin, Size, Region, NCurseswWinError, gen::{HasHandle, HasYAxis, HasXAxis}};
pub trait HasYXAxis: HasHandle<WINDOW> + HasYAxis + HasXAxis {
#[deprecated(since = "0.1.0", note = "ambiguous function name. Use origin() instead")]
fn getbegyx(&self) -> result!(Origin) {
self.origin()
}
#[deprecated(since = "0.1.0", note = "ambiguous function name. Use size() instead")]
fn getmaxyx(&self) -> result!(Size) {
self.size()
}
#[deprecated(since = "0.1.0", note = "ambiguous function name. Use cursor() instead")]
fn getcuryx(&self) -> result!(Origin) {
self.cursor()
}
#[deprecated(since = "0.1.0", note = "ambiguous function name. Use set_cursor() instead")]
fn r#move(&self, origin: Origin) -> result!(()) {
assert_origin!("move", self.size()?, origin);
self.set_cursor(origin)
}
fn redrawln(&self, region: Region) -> result!(()) {
assert_region!("redrawln", self.size()?, region);
Ok(ncursesw::wredrawln(self._handle(), region.try_into()?)?)
}
fn resize(&self, size: Size) -> result!(()) {
Ok(ncursesw::wresize(self._handle(), size.try_into()?)?)
}
fn touchline(&self, count: u16, start: u16) -> result!(()) {
Ok(ncursesw::touchline(self._handle(), i32::try_from(count)?, i32::try_from(start)?)?)
}
fn touchln(&self, line: u16, lines: u16, changed: Changed) -> result!(()) {
Ok(ncursesw::wtouchln(self._handle(), i32::try_from(line)?, i32::try_from(lines)?, changed)?)
}
fn origin(&self) -> result!(Origin) {
Origin::try_from(ncursesw::getbegyx(self._handle())?)
}
fn size(&self) -> result!(Size) {
Size::try_from(ncursesw::getmaxyx(self._handle())?)
}
fn cursor(&self) -> result!(Origin) {
Origin::try_from(ncursesw::getcuryx(self._handle())?)
}
fn set_cursor(&self, origin: Origin) -> result!(()) {
assert_origin!("set_cursor", self.size()?, origin);
Ok(ncursesw::wmove(self._handle(), origin.try_into()?)?)
}
}