Struct RectManager

Source
pub struct RectManager { /* private fields */ }
Expand description

An environment to manage and display character-based graphics in-console.

§Example

use std::{thread, time};
use wrecked::{RectManager, ROOT};

let mut rectmanager = RectManager::new();
// rectmanager is initialized with top-level rect (id = ROOT) attached...
rectmanager.set_string(ROOT, 0, 0, "Hello World");

// draw the latest changes
rectmanager.render();

// wait 5 seconds (in order to see the screen)
let five_seconds = time::Duration::from_secs(5);
let now = time::Instant::now();
thread::sleep(five_seconds);

rectmanager.kill();

Implementations§

Source§

impl RectManager

Source

pub fn restore_console_state(&mut self)

Source§

impl RectManager

Source

pub fn new() -> RectManager

Instantiate a new environment

§Example
use wrecked::{RectManager, ROOT};
// Initialize the console; turn off echo and enable non-canonical input.
let mut rectmanager = RectManager::new();
// turn echo back on and return input to normal.
rectmanager.kill();
Examples found in repository?
examples/blink.rs (line 6)
5fn main() -> Result<(), wrecked::WreckedError> {
6    let mut rectmanager = wrecked::RectManager::new();
7    let (width, height) = rectmanager.get_rect_size(wrecked::ROOT).unwrap();
8    let blinker = rectmanager.new_rect(wrecked::ROOT)?;
9    rectmanager.set_fg_color(blinker, wrecked::Color::RED)?;
10    rectmanager.set_bg_color(blinker, wrecked::Color::WHITE)?;
11    rectmanager.resize(blinker, width / 2, height / 2)?;
12    rectmanager.set_position(blinker, (width / 4) as isize, (height / 4) as isize)?;
13    rectmanager.set_string(blinker, (width / 4) as isize - 3, 2, "BLINK!")?;
14
15    for i in 0 .. 54 {
16        if i % 2 == 0 {
17            rectmanager.disable(blinker)?;
18        } else {
19            rectmanager.enable(blinker)?;
20        }
21        rectmanager.render()?;
22        thread::sleep(Duration::new(0, 100_000_000));
23    }
24
25    rectmanager.kill()?;
26    Ok(())
27}
More examples
Hide additional examples
examples/wave.rs (line 7)
6fn main() {
7    let mut rectmanager = wrecked::RectManager::new();
8    let (width, height) = rectmanager.get_rect_size(wrecked::ROOT).unwrap();
9    let mut points = vec![];
10    for x in 0 .. width {
11        let rect_id = rectmanager.new_rect(wrecked::ROOT).ok().unwrap();
12        rectmanager.set_bg_color(rect_id, wrecked::Color::YELLOW);
13        rectmanager.set_character(rect_id, 0, 0, ' ');
14        points.push(rect_id);
15    }
16
17    rectmanager.render();
18
19    for x in 0 .. ((width * width)) {
20        let rect_id = points[x % width];
21        let y = (height as isize / 2 as isize) +
22            ((2f64*PI * (x as f64 / (width - 1) as f64)).sin() * (height / 3) as f64) as isize;
23        rectmanager.set_position(rect_id, (x % width) as isize, y);
24        rectmanager.draw(rect_id);
25        //thread::sleep(Duration::new(0, 100));
26    }
27
28
29    for rect in points.iter() {
30        rectmanager.set_bg_color(*rect, wrecked::Color::BLUE);
31    }
32
33    for x in 0 .. ((width * width)) {
34        let rect_id = points[x % width];
35        let y = (height as isize / 2 as isize) +
36            ((2f64*PI * (x as f64 / (width - 1) as f64)).sin() * (height / 3) as f64) as isize;
37        rectmanager.set_position(rect_id, (x % width) as isize, y);
38        rectmanager.render();
39        //thread::sleep(Duration::new(0, 50000));
40    }
41    thread::sleep(Duration::new(1, 0));
42
43    rectmanager.kill();
44}
Source

pub fn fit_to_terminal(&mut self) -> bool

If the ROOT rectangle dimensions to not match up to the console dimensions, then resize to fit. Returns true if a resize was made.

Source

pub fn auto_resize(&mut self) -> bool

Deprecated. Use fit_to_terminal()

Source

pub fn render(&mut self) -> Result<(), WreckedError>

Render the visible portion of the rectmanager environment

§Example
// Use ROOT to draw everything
use std::{thread, time};
use wrecked::{RectManager, ROOT};

let mut rectmanager = RectManager::new();
// rectmanager is initialized with top-level rect (id = ROOT) attached...
rectmanager.set_string(ROOT, 0, 0, "Hello World");

// draw the latest changes
rectmanager.render();

// wait 5 seconds (in order to see the screen)
let five_seconds = time::Duration::from_secs(5);
let now = time::Instant::now();
thread::sleep(five_seconds);

rectmanager.kill();
Examples found in repository?
examples/blink.rs (line 21)
5fn main() -> Result<(), wrecked::WreckedError> {
6    let mut rectmanager = wrecked::RectManager::new();
7    let (width, height) = rectmanager.get_rect_size(wrecked::ROOT).unwrap();
8    let blinker = rectmanager.new_rect(wrecked::ROOT)?;
9    rectmanager.set_fg_color(blinker, wrecked::Color::RED)?;
10    rectmanager.set_bg_color(blinker, wrecked::Color::WHITE)?;
11    rectmanager.resize(blinker, width / 2, height / 2)?;
12    rectmanager.set_position(blinker, (width / 4) as isize, (height / 4) as isize)?;
13    rectmanager.set_string(blinker, (width / 4) as isize - 3, 2, "BLINK!")?;
14
15    for i in 0 .. 54 {
16        if i % 2 == 0 {
17            rectmanager.disable(blinker)?;
18        } else {
19            rectmanager.enable(blinker)?;
20        }
21        rectmanager.render()?;
22        thread::sleep(Duration::new(0, 100_000_000));
23    }
24
25    rectmanager.kill()?;
26    Ok(())
27}
More examples
Hide additional examples
examples/wave.rs (line 17)
6fn main() {
7    let mut rectmanager = wrecked::RectManager::new();
8    let (width, height) = rectmanager.get_rect_size(wrecked::ROOT).unwrap();
9    let mut points = vec![];
10    for x in 0 .. width {
11        let rect_id = rectmanager.new_rect(wrecked::ROOT).ok().unwrap();
12        rectmanager.set_bg_color(rect_id, wrecked::Color::YELLOW);
13        rectmanager.set_character(rect_id, 0, 0, ' ');
14        points.push(rect_id);
15    }
16
17    rectmanager.render();
18
19    for x in 0 .. ((width * width)) {
20        let rect_id = points[x % width];
21        let y = (height as isize / 2 as isize) +
22            ((2f64*PI * (x as f64 / (width - 1) as f64)).sin() * (height / 3) as f64) as isize;
23        rectmanager.set_position(rect_id, (x % width) as isize, y);
24        rectmanager.draw(rect_id);
25        //thread::sleep(Duration::new(0, 100));
26    }
27
28
29    for rect in points.iter() {
30        rectmanager.set_bg_color(*rect, wrecked::Color::BLUE);
31    }
32
33    for x in 0 .. ((width * width)) {
34        let rect_id = points[x % width];
35        let y = (height as isize / 2 as isize) +
36            ((2f64*PI * (x as f64 / (width - 1) as f64)).sin() * (height / 3) as f64) as isize;
37        rectmanager.set_position(rect_id, (x % width) as isize, y);
38        rectmanager.render();
39        //thread::sleep(Duration::new(0, 50000));
40    }
41    thread::sleep(Duration::new(1, 0));
42
43    rectmanager.kill();
44}
Source

pub fn kill(&mut self) -> Result<(), WreckedError>

Return console state to normal

§Example
use wrecked::RectManager;
// Initialize the console; turn off echo and enable non-canonical input.
let mut rectmanager = RectManager::new();
// turn echo back on and return input to normal.
rectmanager.kill();
Examples found in repository?
examples/blink.rs (line 25)
5fn main() -> Result<(), wrecked::WreckedError> {
6    let mut rectmanager = wrecked::RectManager::new();
7    let (width, height) = rectmanager.get_rect_size(wrecked::ROOT).unwrap();
8    let blinker = rectmanager.new_rect(wrecked::ROOT)?;
9    rectmanager.set_fg_color(blinker, wrecked::Color::RED)?;
10    rectmanager.set_bg_color(blinker, wrecked::Color::WHITE)?;
11    rectmanager.resize(blinker, width / 2, height / 2)?;
12    rectmanager.set_position(blinker, (width / 4) as isize, (height / 4) as isize)?;
13    rectmanager.set_string(blinker, (width / 4) as isize - 3, 2, "BLINK!")?;
14
15    for i in 0 .. 54 {
16        if i % 2 == 0 {
17            rectmanager.disable(blinker)?;
18        } else {
19            rectmanager.enable(blinker)?;
20        }
21        rectmanager.render()?;
22        thread::sleep(Duration::new(0, 100_000_000));
23    }
24
25    rectmanager.kill()?;
26    Ok(())
27}
More examples
Hide additional examples
examples/wave.rs (line 43)
6fn main() {
7    let mut rectmanager = wrecked::RectManager::new();
8    let (width, height) = rectmanager.get_rect_size(wrecked::ROOT).unwrap();
9    let mut points = vec![];
10    for x in 0 .. width {
11        let rect_id = rectmanager.new_rect(wrecked::ROOT).ok().unwrap();
12        rectmanager.set_bg_color(rect_id, wrecked::Color::YELLOW);
13        rectmanager.set_character(rect_id, 0, 0, ' ');
14        points.push(rect_id);
15    }
16
17    rectmanager.render();
18
19    for x in 0 .. ((width * width)) {
20        let rect_id = points[x % width];
21        let y = (height as isize / 2 as isize) +
22            ((2f64*PI * (x as f64 / (width - 1) as f64)).sin() * (height / 3) as f64) as isize;
23        rectmanager.set_position(rect_id, (x % width) as isize, y);
24        rectmanager.draw(rect_id);
25        //thread::sleep(Duration::new(0, 100));
26    }
27
28
29    for rect in points.iter() {
30        rectmanager.set_bg_color(*rect, wrecked::Color::BLUE);
31    }
32
33    for x in 0 .. ((width * width)) {
34        let rect_id = points[x % width];
35        let y = (height as isize / 2 as isize) +
36            ((2f64*PI * (x as f64 / (width - 1) as f64)).sin() * (height / 3) as f64) as isize;
37        rectmanager.set_position(rect_id, (x % width) as isize, y);
38        rectmanager.render();
39        //thread::sleep(Duration::new(0, 50000));
40    }
41    thread::sleep(Duration::new(1, 0));
42
43    rectmanager.kill();
44}
Source

pub fn get_height(&self) -> usize

Gets the height of the RectManager

Source

pub fn get_width(&self) -> usize

Gets the width of the RectManager

Source

pub fn new_orphan(&mut self) -> Result<usize, WreckedError>

Create a new rectangle, but don’t add it to the environment yet.

§Example
use wrecked::RectManager;
let mut rectmanager = RectManager::new();

// Create a rectangle
let orphan_id = rectmanager.new_orphan().ok().unwrap();

assert!(!rectmanager.has_parent(orphan_id));

rectmanager.kill();
Source

pub fn is_rect_enabled(&self, rect_id: usize) -> bool

Check if a given rectangle (and therefor its children) will be considered when drawing.

Source

pub fn get_character( &self, rect_id: usize, x: isize, y: isize, ) -> Result<char, WreckedError>

Get the character at the given position of a rectangle. The rectangle’s default character (usually ’ ’) is returned if no character is found.

§Example
use wrecked::{RectManager, ROOT};
let mut rectmanager = RectManager::new();
rectmanager.set_character(ROOT, 0, 0, 'X');
assert_eq!(rectmanager.get_character(ROOT, 0, 0).ok().unwrap(), 'X');
rectmanager.kill();
Source

pub fn get_children(&self, rect_id: usize) -> Vec<usize>

Source

pub fn get_absolute_offset(&self, rect_id: usize) -> Option<(isize, isize)>

Get the offset relative to the top-level rectangle in the RectManager.

§Example
use wrecked::{RectManager, ROOT};
let mut rectmanager = RectManager::new();
let mut rect_a = rectmanager.new_rect(ROOT).ok().unwrap();
let mut rect_b = rectmanager.new_rect(rect_a).ok().unwrap();
// Move parent rect ...
rectmanager.set_position(rect_a, 5, 2);
// Move child rect ...
rectmanager.set_position(rect_b, 5, 2);

assert_eq!(rectmanager.get_absolute_offset(rect_b).unwrap(), (10, 4));

rectmanager.kill();
Source

pub fn get_relative_offset(&self, rect_id: usize) -> Option<(isize, isize)>

Get the offset relative to the parent rectangle of the given rectangle.

§Example
use wrecked::{RectManager, ROOT};
let mut rectmanager = RectManager::new();
let mut rect_a = rectmanager.new_rect(ROOT).ok().unwrap();
let mut rect_b = rectmanager.new_rect(rect_a).ok().unwrap();
// Move parent rect ...
rectmanager.set_position(rect_a, 10, 1);
// Move child rect ...
rectmanager.set_position(rect_b, 5, 2);

assert_eq!(rectmanager.get_relative_offset(rect_b).unwrap(), (5, 2));

rectmanager.kill();
Source

pub fn get_rect_width(&self, rect_id: usize) -> usize

Get width of given rectangle

§Example
use wrecked::{RectManager, ROOT};
let mut rectmanager = RectManager::new();
let mut rect = rectmanager.new_rect(ROOT).ok().unwrap();
rectmanager.resize(rect, 10, 10);
assert_eq!(rectmanager.get_rect_height(rect), 10);
rectmanager.kill();
Source

pub fn get_rect_height(&self, rect_id: usize) -> usize

Get height of given rectangle

§Example
use wrecked::{RectManager, ROOT};
let mut rectmanager = RectManager::new();
let mut rect = rectmanager.new_rect(ROOT).ok().unwrap();
rectmanager.resize(rect, 10, 10);
assert_eq!(rectmanager.get_rect_height(rect), 10);
rectmanager.kill();
Source

pub fn get_rect_size(&self, rect_id: usize) -> Option<(usize, usize)>

Get dimensions of specified rectangle, if it exists

§Example
use wrecked::{RectManager, ROOT};
let mut rectmanager = RectManager::new();
let rect_id = rectmanager.new_rect(ROOT).ok().unwrap();
// Resizing to make sure we know the size
rectmanager.resize(rect_id, 10, 10);
assert_eq!((10, 10), rectmanager.get_rect_size(rect_id).unwrap());
Examples found in repository?
examples/blink.rs (line 7)
5fn main() -> Result<(), wrecked::WreckedError> {
6    let mut rectmanager = wrecked::RectManager::new();
7    let (width, height) = rectmanager.get_rect_size(wrecked::ROOT).unwrap();
8    let blinker = rectmanager.new_rect(wrecked::ROOT)?;
9    rectmanager.set_fg_color(blinker, wrecked::Color::RED)?;
10    rectmanager.set_bg_color(blinker, wrecked::Color::WHITE)?;
11    rectmanager.resize(blinker, width / 2, height / 2)?;
12    rectmanager.set_position(blinker, (width / 4) as isize, (height / 4) as isize)?;
13    rectmanager.set_string(blinker, (width / 4) as isize - 3, 2, "BLINK!")?;
14
15    for i in 0 .. 54 {
16        if i % 2 == 0 {
17            rectmanager.disable(blinker)?;
18        } else {
19            rectmanager.enable(blinker)?;
20        }
21        rectmanager.render()?;
22        thread::sleep(Duration::new(0, 100_000_000));
23    }
24
25    rectmanager.kill()?;
26    Ok(())
27}
More examples
Hide additional examples
examples/wave.rs (line 8)
6fn main() {
7    let mut rectmanager = wrecked::RectManager::new();
8    let (width, height) = rectmanager.get_rect_size(wrecked::ROOT).unwrap();
9    let mut points = vec![];
10    for x in 0 .. width {
11        let rect_id = rectmanager.new_rect(wrecked::ROOT).ok().unwrap();
12        rectmanager.set_bg_color(rect_id, wrecked::Color::YELLOW);
13        rectmanager.set_character(rect_id, 0, 0, ' ');
14        points.push(rect_id);
15    }
16
17    rectmanager.render();
18
19    for x in 0 .. ((width * width)) {
20        let rect_id = points[x % width];
21        let y = (height as isize / 2 as isize) +
22            ((2f64*PI * (x as f64 / (width - 1) as f64)).sin() * (height / 3) as f64) as isize;
23        rectmanager.set_position(rect_id, (x % width) as isize, y);
24        rectmanager.draw(rect_id);
25        //thread::sleep(Duration::new(0, 100));
26    }
27
28
29    for rect in points.iter() {
30        rectmanager.set_bg_color(*rect, wrecked::Color::BLUE);
31    }
32
33    for x in 0 .. ((width * width)) {
34        let rect_id = points[x % width];
35        let y = (height as isize / 2 as isize) +
36            ((2f64*PI * (x as f64 / (width - 1) as f64)).sin() * (height / 3) as f64) as isize;
37        rectmanager.set_position(rect_id, (x % width) as isize, y);
38        rectmanager.render();
39        //thread::sleep(Duration::new(0, 50000));
40    }
41    thread::sleep(Duration::new(1, 0));
42
43    rectmanager.kill();
44}
Source

pub fn new_rect(&mut self, parent_id: usize) -> Result<usize, WreckedError>

Add a new rectangle to the environment

§Example
use wrecked::{RectManager, ROOT};
let mut rectmanager = RectManager::new();

// Create a rectangle and attach it as a child to the top-level rectangle.
let first_rect_id = rectmanager.new_rect(ROOT).ok().unwrap();

// Create a child of the newly created rect...
let second_rect_id = rectmanager.new_rect(first_rect_id).ok().unwrap();

rectmanager.kill();
Examples found in repository?
examples/blink.rs (line 8)
5fn main() -> Result<(), wrecked::WreckedError> {
6    let mut rectmanager = wrecked::RectManager::new();
7    let (width, height) = rectmanager.get_rect_size(wrecked::ROOT).unwrap();
8    let blinker = rectmanager.new_rect(wrecked::ROOT)?;
9    rectmanager.set_fg_color(blinker, wrecked::Color::RED)?;
10    rectmanager.set_bg_color(blinker, wrecked::Color::WHITE)?;
11    rectmanager.resize(blinker, width / 2, height / 2)?;
12    rectmanager.set_position(blinker, (width / 4) as isize, (height / 4) as isize)?;
13    rectmanager.set_string(blinker, (width / 4) as isize - 3, 2, "BLINK!")?;
14
15    for i in 0 .. 54 {
16        if i % 2 == 0 {
17            rectmanager.disable(blinker)?;
18        } else {
19            rectmanager.enable(blinker)?;
20        }
21        rectmanager.render()?;
22        thread::sleep(Duration::new(0, 100_000_000));
23    }
24
25    rectmanager.kill()?;
26    Ok(())
27}
More examples
Hide additional examples
examples/wave.rs (line 11)
6fn main() {
7    let mut rectmanager = wrecked::RectManager::new();
8    let (width, height) = rectmanager.get_rect_size(wrecked::ROOT).unwrap();
9    let mut points = vec![];
10    for x in 0 .. width {
11        let rect_id = rectmanager.new_rect(wrecked::ROOT).ok().unwrap();
12        rectmanager.set_bg_color(rect_id, wrecked::Color::YELLOW);
13        rectmanager.set_character(rect_id, 0, 0, ' ');
14        points.push(rect_id);
15    }
16
17    rectmanager.render();
18
19    for x in 0 .. ((width * width)) {
20        let rect_id = points[x % width];
21        let y = (height as isize / 2 as isize) +
22            ((2f64*PI * (x as f64 / (width - 1) as f64)).sin() * (height / 3) as f64) as isize;
23        rectmanager.set_position(rect_id, (x % width) as isize, y);
24        rectmanager.draw(rect_id);
25        //thread::sleep(Duration::new(0, 100));
26    }
27
28
29    for rect in points.iter() {
30        rectmanager.set_bg_color(*rect, wrecked::Color::BLUE);
31    }
32
33    for x in 0 .. ((width * width)) {
34        let rect_id = points[x % width];
35        let y = (height as isize / 2 as isize) +
36            ((2f64*PI * (x as f64 / (width - 1) as f64)).sin() * (height / 3) as f64) as isize;
37        rectmanager.set_position(rect_id, (x % width) as isize, y);
38        rectmanager.render();
39        //thread::sleep(Duration::new(0, 50000));
40    }
41    thread::sleep(Duration::new(1, 0));
42
43    rectmanager.kill();
44}
Source

pub fn draw(&mut self, rect_id: usize) -> Result<(), WreckedError>

Render the rectangle (and all its children) specified. This will not update the Rects at higher levels and can lead to artifacts.

§Example
// Use ROOT to draw everything
use std::{thread, time};
use wrecked::{RectManager, ROOT};

let mut rectmanager = RectManager::new();
let some_rect = rectmanager.new_rect(ROOT).ok().unwrap();
// Adjust the rectangle so it will fit the string
rectmanager.resize(some_rect, 16, 1);
// Give it some text
rectmanager.set_string(some_rect, 0, 0, "Hello World");

// draw the latest changes, but only those of some_rect
rectmanager.draw(some_rect);

// wait 5 seconds (in order to see the screen)
let five_seconds = time::Duration::from_secs(5);
let now = time::Instant::now();
thread::sleep(five_seconds);

rectmanager.kill();
Examples found in repository?
examples/wave.rs (line 24)
6fn main() {
7    let mut rectmanager = wrecked::RectManager::new();
8    let (width, height) = rectmanager.get_rect_size(wrecked::ROOT).unwrap();
9    let mut points = vec![];
10    for x in 0 .. width {
11        let rect_id = rectmanager.new_rect(wrecked::ROOT).ok().unwrap();
12        rectmanager.set_bg_color(rect_id, wrecked::Color::YELLOW);
13        rectmanager.set_character(rect_id, 0, 0, ' ');
14        points.push(rect_id);
15    }
16
17    rectmanager.render();
18
19    for x in 0 .. ((width * width)) {
20        let rect_id = points[x % width];
21        let y = (height as isize / 2 as isize) +
22            ((2f64*PI * (x as f64 / (width - 1) as f64)).sin() * (height / 3) as f64) as isize;
23        rectmanager.set_position(rect_id, (x % width) as isize, y);
24        rectmanager.draw(rect_id);
25        //thread::sleep(Duration::new(0, 100));
26    }
27
28
29    for rect in points.iter() {
30        rectmanager.set_bg_color(*rect, wrecked::Color::BLUE);
31    }
32
33    for x in 0 .. ((width * width)) {
34        let rect_id = points[x % width];
35        let y = (height as isize / 2 as isize) +
36            ((2f64*PI * (x as f64 / (width - 1) as f64)).sin() * (height / 3) as f64) as isize;
37        rectmanager.set_position(rect_id, (x % width) as isize, y);
38        rectmanager.render();
39        //thread::sleep(Duration::new(0, 50000));
40    }
41    thread::sleep(Duration::new(1, 0));
42
43    rectmanager.kill();
44}
Source

pub fn resize( &mut self, rect_id: usize, width: usize, height: usize, ) -> Result<(), WreckedError>

Resize a rectangle

§Example
use wrecked::{RectManager, ROOT};
let mut rectmanager = RectManager::new();
let rect_id = rectmanager.new_rect(ROOT).ok().unwrap();
// Resizing to make sure we know the size
rectmanager.resize(rect_id, 10, 10);
assert_eq!((10, 10), rectmanager.get_rect_size(rect_id).unwrap());
Examples found in repository?
examples/blink.rs (line 11)
5fn main() -> Result<(), wrecked::WreckedError> {
6    let mut rectmanager = wrecked::RectManager::new();
7    let (width, height) = rectmanager.get_rect_size(wrecked::ROOT).unwrap();
8    let blinker = rectmanager.new_rect(wrecked::ROOT)?;
9    rectmanager.set_fg_color(blinker, wrecked::Color::RED)?;
10    rectmanager.set_bg_color(blinker, wrecked::Color::WHITE)?;
11    rectmanager.resize(blinker, width / 2, height / 2)?;
12    rectmanager.set_position(blinker, (width / 4) as isize, (height / 4) as isize)?;
13    rectmanager.set_string(blinker, (width / 4) as isize - 3, 2, "BLINK!")?;
14
15    for i in 0 .. 54 {
16        if i % 2 == 0 {
17            rectmanager.disable(blinker)?;
18        } else {
19            rectmanager.enable(blinker)?;
20        }
21        rectmanager.render()?;
22        thread::sleep(Duration::new(0, 100_000_000));
23    }
24
25    rectmanager.kill()?;
26    Ok(())
27}
Source

pub fn shift_contents( &mut self, rect_id: usize, x_offset: isize, y_offset: isize, ) -> Result<(), WreckedError>

Move all child rectangles, but not characters by the offsets specified

§Example
use wrecked::{RectManager, ROOT};
let mut rectmanager = RectManager::new();
let mut rect_parent = rectmanager.new_rect(ROOT).ok().unwrap();
rectmanager.resize(rect_parent, 16, 5);

// Put a string at (0, 0)
rectmanager.set_string(rect_parent, 0, 0, "Hello world");
// Put a rect at (0, 1)
let rect_child = rectmanager.new_rect(rect_parent).ok().unwrap();
rectmanager.set_position(rect_child, 0, 1);
// Shift contents down one row ...
rectmanager.shift_contents(rect_parent, 0, 1);

assert_eq!(rectmanager.get_character(rect_parent, 0, 0).ok().unwrap(), 'H');
assert_eq!(rectmanager.get_relative_offset(rect_child).unwrap(), (0, 2));

rectmanager.kill();
Source

pub fn set_position( &mut self, rect_id: usize, x: isize, y: isize, ) -> Result<(), WreckedError>

Set relative offset of given rectangle.

§Example
use wrecked::{RectManager, ROOT};
let mut rectmanager = RectManager::new();
let mut rect_id = rectmanager.new_rect(ROOT).ok().unwrap();
rectmanager.set_position(rect_id, 4, 4);
assert_eq!(rectmanager.get_relative_offset(rect_id).unwrap(), (4, 4));
Examples found in repository?
examples/blink.rs (line 12)
5fn main() -> Result<(), wrecked::WreckedError> {
6    let mut rectmanager = wrecked::RectManager::new();
7    let (width, height) = rectmanager.get_rect_size(wrecked::ROOT).unwrap();
8    let blinker = rectmanager.new_rect(wrecked::ROOT)?;
9    rectmanager.set_fg_color(blinker, wrecked::Color::RED)?;
10    rectmanager.set_bg_color(blinker, wrecked::Color::WHITE)?;
11    rectmanager.resize(blinker, width / 2, height / 2)?;
12    rectmanager.set_position(blinker, (width / 4) as isize, (height / 4) as isize)?;
13    rectmanager.set_string(blinker, (width / 4) as isize - 3, 2, "BLINK!")?;
14
15    for i in 0 .. 54 {
16        if i % 2 == 0 {
17            rectmanager.disable(blinker)?;
18        } else {
19            rectmanager.enable(blinker)?;
20        }
21        rectmanager.render()?;
22        thread::sleep(Duration::new(0, 100_000_000));
23    }
24
25    rectmanager.kill()?;
26    Ok(())
27}
More examples
Hide additional examples
examples/wave.rs (line 23)
6fn main() {
7    let mut rectmanager = wrecked::RectManager::new();
8    let (width, height) = rectmanager.get_rect_size(wrecked::ROOT).unwrap();
9    let mut points = vec![];
10    for x in 0 .. width {
11        let rect_id = rectmanager.new_rect(wrecked::ROOT).ok().unwrap();
12        rectmanager.set_bg_color(rect_id, wrecked::Color::YELLOW);
13        rectmanager.set_character(rect_id, 0, 0, ' ');
14        points.push(rect_id);
15    }
16
17    rectmanager.render();
18
19    for x in 0 .. ((width * width)) {
20        let rect_id = points[x % width];
21        let y = (height as isize / 2 as isize) +
22            ((2f64*PI * (x as f64 / (width - 1) as f64)).sin() * (height / 3) as f64) as isize;
23        rectmanager.set_position(rect_id, (x % width) as isize, y);
24        rectmanager.draw(rect_id);
25        //thread::sleep(Duration::new(0, 100));
26    }
27
28
29    for rect in points.iter() {
30        rectmanager.set_bg_color(*rect, wrecked::Color::BLUE);
31    }
32
33    for x in 0 .. ((width * width)) {
34        let rect_id = points[x % width];
35        let y = (height as isize / 2 as isize) +
36            ((2f64*PI * (x as f64 / (width - 1) as f64)).sin() * (height / 3) as f64) as isize;
37        rectmanager.set_position(rect_id, (x % width) as isize, y);
38        rectmanager.render();
39        //thread::sleep(Duration::new(0, 50000));
40    }
41    thread::sleep(Duration::new(1, 0));
42
43    rectmanager.kill();
44}
Source

pub fn disable(&mut self, rect_id: usize) -> Result<(), WreckedError>

Do not draw the given rectangle or is descendents when draw() is called.

Examples found in repository?
examples/blink.rs (line 17)
5fn main() -> Result<(), wrecked::WreckedError> {
6    let mut rectmanager = wrecked::RectManager::new();
7    let (width, height) = rectmanager.get_rect_size(wrecked::ROOT).unwrap();
8    let blinker = rectmanager.new_rect(wrecked::ROOT)?;
9    rectmanager.set_fg_color(blinker, wrecked::Color::RED)?;
10    rectmanager.set_bg_color(blinker, wrecked::Color::WHITE)?;
11    rectmanager.resize(blinker, width / 2, height / 2)?;
12    rectmanager.set_position(blinker, (width / 4) as isize, (height / 4) as isize)?;
13    rectmanager.set_string(blinker, (width / 4) as isize - 3, 2, "BLINK!")?;
14
15    for i in 0 .. 54 {
16        if i % 2 == 0 {
17            rectmanager.disable(blinker)?;
18        } else {
19            rectmanager.enable(blinker)?;
20        }
21        rectmanager.render()?;
22        thread::sleep(Duration::new(0, 100_000_000));
23    }
24
25    rectmanager.kill()?;
26    Ok(())
27}
Source

pub fn enable(&mut self, rect_id: usize) -> Result<(), WreckedError>

If a rectangle has been disabled, enable it.

Examples found in repository?
examples/blink.rs (line 19)
5fn main() -> Result<(), wrecked::WreckedError> {
6    let mut rectmanager = wrecked::RectManager::new();
7    let (width, height) = rectmanager.get_rect_size(wrecked::ROOT).unwrap();
8    let blinker = rectmanager.new_rect(wrecked::ROOT)?;
9    rectmanager.set_fg_color(blinker, wrecked::Color::RED)?;
10    rectmanager.set_bg_color(blinker, wrecked::Color::WHITE)?;
11    rectmanager.resize(blinker, width / 2, height / 2)?;
12    rectmanager.set_position(blinker, (width / 4) as isize, (height / 4) as isize)?;
13    rectmanager.set_string(blinker, (width / 4) as isize - 3, 2, "BLINK!")?;
14
15    for i in 0 .. 54 {
16        if i % 2 == 0 {
17            rectmanager.disable(blinker)?;
18        } else {
19            rectmanager.enable(blinker)?;
20        }
21        rectmanager.render()?;
22        thread::sleep(Duration::new(0, 100_000_000));
23    }
24
25    rectmanager.kill()?;
26    Ok(())
27}
Source

pub fn clear_characters(&mut self, rect_id: usize) -> Result<(), WreckedError>

Remove all the text added to a rectangle.

§Example
use wrecked::{RectManager, ROOT};
let mut rectmanager = RectManager::new();
// Add some Characters to ROOT rect
for x in 0 .. 10 {
    rectmanager.set_character(ROOT, x, 0, 'X');
}
// Now delete them all ...
rectmanager.clear_characters(ROOT);

rectmanager.kill();
Source

pub fn clear_children(&mut self, rect_id: usize) -> Result<(), WreckedError>

Remove all children from a rectangle, deleting them.

§Example
use wrecked::{RectManager, ROOT};
let mut rectmanager = RectManager::new();
// Add some children to ROOT rect
for _ in 0 .. 10 {
    rectmanager.new_rect(ROOT).ok().unwrap();
}
// Now delete them all ...
rectmanager.clear_children(ROOT);

rectmanager.kill();
Source

pub fn clear_effects(&mut self, rect_id: usize) -> Result<(), WreckedError>

Remove all effects from the rectangle’s text. Does not apply recursively.

Source

pub fn detach(&mut self, rect_id: usize) -> Result<(), WreckedError>

Remove a rectangle from its parent without destroying it, so it can be reattached later.

§Example
use wrecked::{RectManager, ROOT};
let mut rectmanager = RectManager::new();
// Create a rectangle that is attached to ROOT.
let rect_a = rectmanager.new_rect(ROOT).ok().unwrap();
rectmanager.detach(rect_a);

assert!(!rectmanager.has_parent(rect_a));

rectmanager.kill();
Source

pub fn attach( &mut self, rect_id: usize, new_parent_id: usize, ) -> Result<(), WreckedError>

Attach one rect as a child to another.

§Example
use wrecked::{RectManager, ROOT};
let mut rectmanager = RectManager::new();
// Create a rectangle that is attached to ROOT.
let rect_a = rectmanager.new_rect(ROOT).ok().unwrap();
// Create an orphan rectangle to switch in.
let rect_b = rectmanager.new_orphan().ok().unwrap();
rectmanager.attach(rect_b, rect_a);

assert_eq!(rectmanager.get_parent_id(rect_b).unwrap(), rect_a);

rectmanager.kill();
Source

pub fn set_string( &mut self, rect_id: usize, start_x: isize, start_y: isize, string: &str, ) -> Result<(), WreckedError>

Set a string of characters starting at the specified position of the given rectangle. Wraps automatically, but will throw error on y-overflow.

§Example
use wrecked::{RectManager, ROOT};
let mut rectmanager = RectManager::new();
rectmanager.set_string(ROOT, 0, 0, "This Some Text");
rectmanager.kill();
Examples found in repository?
examples/blink.rs (line 13)
5fn main() -> Result<(), wrecked::WreckedError> {
6    let mut rectmanager = wrecked::RectManager::new();
7    let (width, height) = rectmanager.get_rect_size(wrecked::ROOT).unwrap();
8    let blinker = rectmanager.new_rect(wrecked::ROOT)?;
9    rectmanager.set_fg_color(blinker, wrecked::Color::RED)?;
10    rectmanager.set_bg_color(blinker, wrecked::Color::WHITE)?;
11    rectmanager.resize(blinker, width / 2, height / 2)?;
12    rectmanager.set_position(blinker, (width / 4) as isize, (height / 4) as isize)?;
13    rectmanager.set_string(blinker, (width / 4) as isize - 3, 2, "BLINK!")?;
14
15    for i in 0 .. 54 {
16        if i % 2 == 0 {
17            rectmanager.disable(blinker)?;
18        } else {
19            rectmanager.enable(blinker)?;
20        }
21        rectmanager.render()?;
22        thread::sleep(Duration::new(0, 100_000_000));
23    }
24
25    rectmanager.kill()?;
26    Ok(())
27}
Source

pub fn set_character( &mut self, rect_id: usize, x: isize, y: isize, character: char, ) -> Result<(), WreckedError>

Set the character at the given position of a rectangle.

§Example
use wrecked::{RectManager, ROOT};
let mut rectmanager = RectManager::new();
rectmanager.set_character(ROOT, 0, 0, 'X');
assert_eq!(rectmanager.get_character(ROOT, 0, 0).ok().unwrap(), 'X');
rectmanager.kill();
Examples found in repository?
examples/wave.rs (line 13)
6fn main() {
7    let mut rectmanager = wrecked::RectManager::new();
8    let (width, height) = rectmanager.get_rect_size(wrecked::ROOT).unwrap();
9    let mut points = vec![];
10    for x in 0 .. width {
11        let rect_id = rectmanager.new_rect(wrecked::ROOT).ok().unwrap();
12        rectmanager.set_bg_color(rect_id, wrecked::Color::YELLOW);
13        rectmanager.set_character(rect_id, 0, 0, ' ');
14        points.push(rect_id);
15    }
16
17    rectmanager.render();
18
19    for x in 0 .. ((width * width)) {
20        let rect_id = points[x % width];
21        let y = (height as isize / 2 as isize) +
22            ((2f64*PI * (x as f64 / (width - 1) as f64)).sin() * (height / 3) as f64) as isize;
23        rectmanager.set_position(rect_id, (x % width) as isize, y);
24        rectmanager.draw(rect_id);
25        //thread::sleep(Duration::new(0, 100));
26    }
27
28
29    for rect in points.iter() {
30        rectmanager.set_bg_color(*rect, wrecked::Color::BLUE);
31    }
32
33    for x in 0 .. ((width * width)) {
34        let rect_id = points[x % width];
35        let y = (height as isize / 2 as isize) +
36            ((2f64*PI * (x as f64 / (width - 1) as f64)).sin() * (height / 3) as f64) as isize;
37        rectmanager.set_position(rect_id, (x % width) as isize, y);
38        rectmanager.render();
39        //thread::sleep(Duration::new(0, 50000));
40    }
41    thread::sleep(Duration::new(1, 0));
42
43    rectmanager.kill();
44}
Source

pub fn unset_character( &mut self, rect_id: usize, x: isize, y: isize, ) -> Result<(), WreckedError>

Delete a set character of a given rectangle at specified point

§Example
use wrecked::{RectManager, ROOT};
let mut rectmanager = RectManager::new();
rectmanager.set_character(ROOT, 0, 0, 'X');
rectmanager.unset_character(ROOT, 0, 0);
assert_eq!(rectmanager.get_character(ROOT, 0, 0).ok().unwrap(), rectmanager.get_default_character(ROOT));
rectmanager.kill();
Source

pub fn delete_rect(&mut self, rect_id: usize) -> Result<(), WreckedError>

Completely erase a rectangle & remove it from the RectManager’s tree.

§Example
use wrecked::{RectManager, ROOT};
let mut rectmanager = RectManager::new();
let mut rect = rectmanager.new_rect(ROOT).ok().unwrap();

rectmanager.delete_rect(rect);
assert!(!rectmanager.has_rect(rect));

rectmanager.kill();
Source

pub fn replace_with( &mut self, old_rect_id: usize, new_rect_id: usize, ) -> Result<(), WreckedError>

Swap out one rectangle with another.

§Example
use wrecked::{RectManager, ROOT};
let mut rectmanager = RectManager::new();
// Create a rectangle that is attached to ROOT.
let rect_a = rectmanager.new_rect(ROOT).ok().unwrap();
// Create an orphan rectangle to switch in.
let rect_b = rectmanager.new_orphan().ok().unwrap();
rectmanager.replace_with(rect_a, rect_b);

assert!(rectmanager.has_parent(rect_b));
assert!(!rectmanager.has_parent(rect_a));
Source

pub fn set_bold_flag(&mut self, rect_id: usize) -> Result<(), WreckedError>

Apply bold effect to text of given rect (does not apply recursively).

§Example
use wrecked::{RectManager, ROOT};
let mut rectmanager = RectManager::new();
rectmanager.set_bold_flag(ROOT);
rectmanager.set_string(ROOT, 0, 0, "Some Bold Text");
rectmanager.kill();
Source

pub fn unset_bold_flag(&mut self, rect_id: usize) -> Result<(), WreckedError>

Disable bold text effect

§Example
use wrecked::{RectManager, ROOT};
let mut rectmanager = RectManager::new();
rectmanager.set_bold_flag(ROOT);
rectmanager.unset_bold_flag(ROOT);
rectmanager.set_string(ROOT, 0, 0, "Normal Text");
rectmanager.kill();
Source

pub fn set_underline_flag(&mut self, rect_id: usize) -> Result<(), WreckedError>

Apply underline effect to text of given rect (does not apply recursively).

§Example
use wrecked::{RectManager, ROOT};
let mut rectmanager = RectManager::new();
rectmanager.set_underline_flag(ROOT);
rectmanager.set_string(ROOT, 0, 0, "Some Underlined Text");
rectmanager.kill();
Source

pub fn unset_underline_flag( &mut self, rect_id: usize, ) -> Result<(), WreckedError>

Disable underline text effect

§Example
use wrecked::{RectManager, ROOT};
let mut rectmanager = RectManager::new();
rectmanager.set_underline_flag(ROOT);
rectmanager.unset_underline_flag(ROOT);
rectmanager.set_string(ROOT, 0, 0, "Normal Text");
rectmanager.kill();
Source

pub fn set_invert_flag(&mut self, rect_id: usize) -> Result<(), WreckedError>

Invert the background and foreground colors of the text of the given rect (does not apply recursively).

§Example
use wrecked::{RectManager, ROOT};
let mut rectmanager = RectManager::new();
rectmanager.set_invert_flag(ROOT);
rectmanager.set_string(ROOT, 0, 0, "Some Inverted Text");
rectmanager.kill();
Source

pub fn unset_invert_flag(&mut self, rect_id: usize) -> Result<(), WreckedError>

Disable invert text effect

§Example
use wrecked::{RectManager, ROOT};
let mut rectmanager = RectManager::new();
rectmanager.set_invert_flag(ROOT);
rectmanager.unset_invert_flag(ROOT);
rectmanager.set_string(ROOT, 0, 0, "Normal Text");
rectmanager.kill();
Source

pub fn set_italics_flag(&mut self, rect_id: usize) -> Result<(), WreckedError>

Apply italics effect to text of given rect (does not apply recursively).

§Example
use wrecked::{RectManager, ROOT};
let mut rectmanager = RectManager::new();
rectmanager.set_italics_flag(ROOT);
rectmanager.set_string(ROOT, 0, 0, "Some Italicized Text");
rectmanager.kill();
Source

pub fn unset_italics_flag(&mut self, rect_id: usize) -> Result<(), WreckedError>

Disable italics text effect

§Example
use wrecked::{RectManager, ROOT};
let mut rectmanager = RectManager::new();
rectmanager.set_italics_flag(ROOT);
rectmanager.unset_italics_flag(ROOT);
rectmanager.set_string(ROOT, 0, 0, "Normal Text");
rectmanager.kill();
Source

pub fn set_strike_flag(&mut self, rect_id: usize) -> Result<(), WreckedError>

Apply strike effect to text of given rect (does not apply recursively).

§Example
use wrecked::{RectManager, ROOT};
let mut rectmanager = RectManager::new();
rectmanager.set_strike_flag(ROOT);
rectmanager.set_string(ROOT, 0, 0, "Some Text With Strikethrough");
rectmanager.kill();
Source

pub fn unset_strike_flag(&mut self, rect_id: usize) -> Result<(), WreckedError>

Disable strike text effect

§Example
use wrecked::{RectManager, ROOT};
let mut rectmanager = RectManager::new();
rectmanager.set_strike_flag(ROOT);
rectmanager.unset_strike_flag(ROOT);
rectmanager.set_string(ROOT, 0, 0, "Normal Text");
rectmanager.kill();

Apply blink effect to text of given rect (does not apply recursively).

§Example
use wrecked::{RectManager, ROOT};
let mut rectmanager = RectManager::new();
rectmanager.set_blink_flag(ROOT);
rectmanager.set_string(ROOT, 0, 0, "Some Blinking Text");
rectmanager.kill();

Disable blink text effect

§Example
use wrecked::{RectManager, ROOT};
let mut rectmanager = RectManager::new();
rectmanager.set_blink_flag(ROOT);
rectmanager.unset_blink_flag(ROOT);
rectmanager.set_string(ROOT, 0, 0, "Normal Text");
rectmanager.kill();
Source

pub fn set_bg_color( &mut self, rect_id: usize, color: Color, ) -> Result<(), WreckedError>

Set color of background of given rect (does not apply recursively)

§Example
use wrecked::{RectManager, ROOT, Color};
let mut rectmanager = RectManager::new();
// Give Top a Green background
rectmanager.set_fg_color(ROOT, Color::GREEN);

rectmanager.kill();
Examples found in repository?
examples/blink.rs (line 10)
5fn main() -> Result<(), wrecked::WreckedError> {
6    let mut rectmanager = wrecked::RectManager::new();
7    let (width, height) = rectmanager.get_rect_size(wrecked::ROOT).unwrap();
8    let blinker = rectmanager.new_rect(wrecked::ROOT)?;
9    rectmanager.set_fg_color(blinker, wrecked::Color::RED)?;
10    rectmanager.set_bg_color(blinker, wrecked::Color::WHITE)?;
11    rectmanager.resize(blinker, width / 2, height / 2)?;
12    rectmanager.set_position(blinker, (width / 4) as isize, (height / 4) as isize)?;
13    rectmanager.set_string(blinker, (width / 4) as isize - 3, 2, "BLINK!")?;
14
15    for i in 0 .. 54 {
16        if i % 2 == 0 {
17            rectmanager.disable(blinker)?;
18        } else {
19            rectmanager.enable(blinker)?;
20        }
21        rectmanager.render()?;
22        thread::sleep(Duration::new(0, 100_000_000));
23    }
24
25    rectmanager.kill()?;
26    Ok(())
27}
More examples
Hide additional examples
examples/wave.rs (line 12)
6fn main() {
7    let mut rectmanager = wrecked::RectManager::new();
8    let (width, height) = rectmanager.get_rect_size(wrecked::ROOT).unwrap();
9    let mut points = vec![];
10    for x in 0 .. width {
11        let rect_id = rectmanager.new_rect(wrecked::ROOT).ok().unwrap();
12        rectmanager.set_bg_color(rect_id, wrecked::Color::YELLOW);
13        rectmanager.set_character(rect_id, 0, 0, ' ');
14        points.push(rect_id);
15    }
16
17    rectmanager.render();
18
19    for x in 0 .. ((width * width)) {
20        let rect_id = points[x % width];
21        let y = (height as isize / 2 as isize) +
22            ((2f64*PI * (x as f64 / (width - 1) as f64)).sin() * (height / 3) as f64) as isize;
23        rectmanager.set_position(rect_id, (x % width) as isize, y);
24        rectmanager.draw(rect_id);
25        //thread::sleep(Duration::new(0, 100));
26    }
27
28
29    for rect in points.iter() {
30        rectmanager.set_bg_color(*rect, wrecked::Color::BLUE);
31    }
32
33    for x in 0 .. ((width * width)) {
34        let rect_id = points[x % width];
35        let y = (height as isize / 2 as isize) +
36            ((2f64*PI * (x as f64 / (width - 1) as f64)).sin() * (height / 3) as f64) as isize;
37        rectmanager.set_position(rect_id, (x % width) as isize, y);
38        rectmanager.render();
39        //thread::sleep(Duration::new(0, 50000));
40    }
41    thread::sleep(Duration::new(1, 0));
42
43    rectmanager.kill();
44}
Source

pub fn unset_bg_color(&mut self, rect_id: usize) -> Result<(), WreckedError>

Return background color to default

§Example
use wrecked::{RectManager, ROOT, Color};
let mut rectmanager = RectManager::new();
// Give Top a Magenta background
rectmanager.set_bg_color(ROOT, Color::MAGENTA);

// Remove those colors...
rectmanager.unset_bg_color(ROOT);

rectmanager.kill();
Source

pub fn set_fg_color( &mut self, rect_id: usize, color: Color, ) -> Result<(), WreckedError>

Set color of foreground (text) of given rect (does not apply recursively)

§Example
use wrecked::{RectManager, ROOT, Color};
let mut rectmanager = RectManager::new();
// Give Top a YELLOW foreground
rectmanager.set_fg_color(ROOT, Color::YELLOW);

rectmanager.kill();
Examples found in repository?
examples/blink.rs (line 9)
5fn main() -> Result<(), wrecked::WreckedError> {
6    let mut rectmanager = wrecked::RectManager::new();
7    let (width, height) = rectmanager.get_rect_size(wrecked::ROOT).unwrap();
8    let blinker = rectmanager.new_rect(wrecked::ROOT)?;
9    rectmanager.set_fg_color(blinker, wrecked::Color::RED)?;
10    rectmanager.set_bg_color(blinker, wrecked::Color::WHITE)?;
11    rectmanager.resize(blinker, width / 2, height / 2)?;
12    rectmanager.set_position(blinker, (width / 4) as isize, (height / 4) as isize)?;
13    rectmanager.set_string(blinker, (width / 4) as isize - 3, 2, "BLINK!")?;
14
15    for i in 0 .. 54 {
16        if i % 2 == 0 {
17            rectmanager.disable(blinker)?;
18        } else {
19            rectmanager.enable(blinker)?;
20        }
21        rectmanager.render()?;
22        thread::sleep(Duration::new(0, 100_000_000));
23    }
24
25    rectmanager.kill()?;
26    Ok(())
27}
Source

pub fn unset_fg_color(&mut self, rect_id: usize) -> Result<(), WreckedError>

Return foreground color to default

§Example
use wrecked::{RectManager, ROOT, Color};
let mut rectmanager = RectManager::new();
// Give Top a White foreground
rectmanager.set_fg_color(ROOT, Color::WHITE);

// Remove those colors...
rectmanager.unset_fg_color(ROOT);

rectmanager.kill();
Source

pub fn unset_color(&mut self, rect_id: usize) -> Result<(), WreckedError>

Return both background and foreground colors to default

§Example
use wrecked::{RectManager, ROOT, Color};
let mut rectmanager = RectManager::new();
// Give Top a Blue background and a White foreground
rectmanager.set_bg_color(ROOT, Color::BLUE);
rectmanager.set_fg_color(ROOT, Color::WHITE);

// Remove those colors...
rectmanager.unset_color(ROOT);

rectmanager.kill();
Source

pub fn get_default_character(&self, rect_id: usize) -> char

Get the fallback character that would be displayed where no character is set. Defaults to ’ ’.

Source

pub fn get_parent_id(&self, rect_id: usize) -> Option<usize>

Get id of parent rectangle

§Example

use wrecked::{RectManager, ROOT, Color}; let mut rectmanager = RectManager::new();

let mut rect = rectmanager.new_rect(ROOT); assert_eq!(rectmanager.get_parent_id(rect), Some(ROOT));

rectmanager.detach(rect); assert_eq!(rectmanager.get_parent_id(rect), None);

rectmanager.kill();

Source

pub fn has_parent(&self, rect_id: usize) -> bool

Check if given Rect is connected to a parent.

§Example
use wrecked::{RectManager, ROOT, Color};
let mut rectmanager = RectManager::new();
let mut rect = rectmanager.new_rect(ROOT).ok().unwrap();
assert!(rectmanager.has_parent(rect));

rectmanager.detach(rect);
assert!(!rectmanager.has_parent(rect));

rectmanager.kill();
Source

pub fn has_rect(&self, rect_id: usize) -> bool

Check if the given id has an associated Rect within the RectManager.

Source

pub fn is_transparent(&self, rect_id: usize) -> bool

Check if the given Rect displays its background where no characters are set.

Source

pub fn set_transparency( &mut self, rect_id: usize, transparent: bool, ) -> Result<(), WreckedError>

Set the transparency of given Rect. Transparent Rects will show the content of the Rects behind them where no characters or children are set. Opaque Rects will display the default characters in the corresponding foreground and background colors.

§Example
use wrecked::{RectManager, ROOT, Color};
let mut rectmanager = RectManager::new();
let rect = rectmanager.new_rect(ROOT).ok().unwrap();
rectmanager.set_transparency(rect, true);
rectmanager.kill();
Source

pub fn get_fg_color(&self, rect_id: usize) -> Option<Color>

Get foreground color of given Rect

§Example
use wrecked::{RectManager, ROOT, Color};
let mut rectmanager = RectManager::new();
assert_eq!(rectmanager.get_fg_color(ROOT), None);
rectmanager.set_fg_color(ROOT, Color::BLUE);
assert_eq!(rectmanager.get_fg_color(ROOT), Some(Color::BLUE));
// turn echo back on and return input to normal.
rectmanager.kill();
Source

pub fn get_bg_color(&self, rect_id: usize) -> Option<Color>

Get background color of given rectangle

§Example
use wrecked::{RectManager, ROOT, Color};
let mut rectmanager = RectManager::new();
assert_eq!(rectmanager.get_bg_color(ROOT), None);
rectmanager.set_bg_color(ROOT, Color::BLUE);
assert_eq!(rectmanager.get_bg_color(ROOT), Some(Color::BLUE));
// turn echo back on and return input to normal.
rectmanager.kill();

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.