From 640a2b138e4831337b5dfcd655eb2622c67c725a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?joseLu=C3=ADs?= Date: Fri, 11 Jun 2021 11:48:51 +0200 Subject: [PATCH] [rust] add example for issue #1753 --- rust/examples/issue-1753.rs | 47 +++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 rust/examples/issue-1753.rs diff --git a/rust/examples/issue-1753.rs b/rust/examples/issue-1753.rs new file mode 100644 index 000000000..69012edb0 --- /dev/null +++ b/rust/examples/issue-1753.rs @@ -0,0 +1,47 @@ +use libnotcurses_sys::*; + +fn main() -> NcResult<()> { + let mut nc = Notcurses::new()?; + + // NOT USING STDPLANE movement is relative + + let pred = NcPlane::new(&mut nc, 0, 0, 10, 20)?; + pred.set_base("ยท", 0, NcChannelPair::with_rgb(0xaadd2b, 0x882222))?; + prsleep![pred, 0, 300]; + + for _ in 0..8 { + pred.move_yx(1, 1)?; + // pred.move_rel(1, 1)?; // this would move in geometric proportion + prsleep![pred, 0, 100]; + } + for _ in 0..8 { + pred.move_yx(-1, -1)?; + // pred.move_rel(-1, -1)?; // + prsleep![pred, 0, 100]; + } + sleep![1]; + pred.destroy()?; + + + // USING STDPLANE movement is absolute! + + let pgreen = NcPlane::new_bound(nc.stdplane(), 0, 0, 10, 20)?; + pgreen.set_base("s", 0, NcChannelPair::with_rgb(0x224411, 0x229922))?; + rsleep![&mut nc, 0, 800]; + + for _ in 0..8 { + pgreen.move_yx(1, 1)?; + // pgreen.move_rel(1, 1)?; // this works like move_yx on the red plane + rsleep![&mut nc, 0, 100]; + } + for _ in 0..8 { + pgreen.move_yx(-1, -1)?; + // pgreen.move_rel(-1, -1)?; // + rsleep![&mut nc, 0, 100]; + } + sleep![2]; + pgreen.destroy()?; + + nc.stop()?; + Ok(()) +}