[−][src]Struct wrecked::RectManager
An environment to manage and display character-based graphics in-console.
Example
use std::{thread, time}; use wrecked::{RectManager, TOP}; let mut rectmanager = RectManager::new(); // rectmanager is initialized with top-level rect (id = TOP) attached... rectmanager.set_string(TOP, 0, 0, "Hello World"); // draw the latest changes rectmanager.draw(); // 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
impl RectManager
[src]
pub fn new() -> RectManager
[src]
Instantiate a new environment
Example
use wrecked::{RectManager, TOP}; // 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();
pub fn new_rect(&mut self, parent_id: usize) -> Result<usize, RectError>
[src]
Add a new rectangle to the environment
Example
use wrecked::{RectManager, TOP}; 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(TOP).ok().unwrap(); // Create a child of the newly created rect... let second_rect_id = rectmanager.new_rect(first_rect_id).ok().unwrap(); rectmanager.kill();
pub fn new_orphan(&mut self) -> Result<usize, RectError>
[src]
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();
pub fn draw_rect(&mut self, rect_id: usize) -> Result<(), RectError>
[src]
Render the rectangle (and all its children) specified.
Example
// Use TOP to draw everything use std::{thread, time}; use wrecked::{RectManager, TOP}; let mut rectmanager = RectManager::new(); let some_rect = rectmanager.new_rect(TOP).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_rect(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();
pub fn draw(&mut self) -> Result<(), RectError>
[src]
Render the visible portion of the rectmanager environment
Example
// Use TOP to draw everything use std::{thread, time}; use wrecked::{RectManager, TOP}; let mut rectmanager = RectManager::new(); // rectmanager is initialized with top-level rect (id = TOP) attached... rectmanager.set_string(TOP, 0, 0, "Hello World"); // draw the latest changes rectmanager.draw(); // 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();
pub fn get_rect_size(&self, rect_id: usize) -> Option<(usize, usize)>
[src]
Get dimensions of specified rectangle, if it exists
Example
use wrecked::{RectManager, TOP}; let mut rectmanager = RectManager::new(); let rect_id = rectmanager.new_rect(TOP).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());
pub fn resize(
&mut self,
rect_id: usize,
width: usize,
height: usize
) -> Result<(), RectError>
[src]
&mut self,
rect_id: usize,
width: usize,
height: usize
) -> Result<(), RectError>
Resize a rectangle
Example
use wrecked::{RectManager, TOP}; let mut rectmanager = RectManager::new(); let rect_id = rectmanager.new_rect(TOP).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());
pub fn shift_contents(
&mut self,
rect_id: usize,
x_offset: isize,
y_offset: isize
) -> Result<(), RectError>
[src]
&mut self,
rect_id: usize,
x_offset: isize,
y_offset: isize
) -> Result<(), RectError>
Move all child rectangles, but not characters by the offsets specified
Example
use wrecked::{RectManager, TOP}; let mut rectmanager = RectManager::new(); let mut rect_parent = rectmanager.new_rect(TOP).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();
pub fn set_position(
&mut self,
rect_id: usize,
x: isize,
y: isize
) -> Result<(), RectError>
[src]
&mut self,
rect_id: usize,
x: isize,
y: isize
) -> Result<(), RectError>
Set relative offset of given rectangle.
Example
use wrecked::{RectManager, TOP}; let mut rectmanager = RectManager::new(); let mut rect_id = rectmanager.new_rect(TOP).ok().unwrap(); rectmanager.set_position(rect_id, 4, 4); assert_eq!(rectmanager.get_relative_offset(rect_id).unwrap(), (4, 4));
pub fn disable(&mut self, rect_id: usize) -> Result<(), RectError>
[src]
Do not draw the given rectangle or is descendents when draw() is called.
pub fn enable(&mut self, rect_id: usize) -> Result<(), RectError>
[src]
If a rectangle has been disabled, enable it.
pub fn is_rect_enabled(&self, rect_id: usize) -> bool
[src]
Check if a given rectangle (and therefor its children) will be considered when drawing.
pub fn clear_characters(&mut self, rect_id: usize) -> Result<(), RectError>
[src]
Remove all the text added to a rectangle.
Example
use wrecked::{RectManager, TOP}; let mut rectmanager = RectManager::new(); // Add some Characters to TOP rect for x in 0 .. 10 { rectmanager.set_character(TOP, x, 0, 'X'); } // Now delete them all ... rectmanager.clear_characters(TOP); rectmanager.kill();
pub fn clear_children(&mut self, rect_id: usize) -> Result<(), RectError>
[src]
Remove all children from a rectangle, deleting them.
Example
use wrecked::{RectManager, TOP}; let mut rectmanager = RectManager::new(); // Add some children to TOP rect for _ in 0 .. 10 { rectmanager.new_rect(TOP).ok().unwrap(); } // Now delete them all ... rectmanager.clear_children(TOP); rectmanager.kill();
pub fn clear_effects(&mut self, rect_id: usize) -> Result<(), RectError>
[src]
Remove all effects from the rectangle's text. Does not apply recursively.
pub fn detach(&mut self, rect_id: usize) -> Result<(), RectError>
[src]
Remove a rectangle from its parent without destroying it, so it can be reattached later.
Example
use wrecked::{RectManager, TOP}; let mut rectmanager = RectManager::new(); // Create a rectangle that is attached to TOP. let rect_a = rectmanager.new_rect(TOP).ok().unwrap(); rectmanager.detach(rect_a); assert!(!rectmanager.has_parent(rect_a)); rectmanager.kill();
pub fn attach(
&mut self,
rect_id: usize,
new_parent_id: usize
) -> Result<(), RectError>
[src]
&mut self,
rect_id: usize,
new_parent_id: usize
) -> Result<(), RectError>
Attach one rect as a child to another.
Example
use wrecked::{RectManager, TOP}; let mut rectmanager = RectManager::new(); // Create a rectangle that is attached to TOP. let rect_a = rectmanager.new_rect(TOP).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();
pub fn set_string(
&mut self,
rect_id: usize,
start_x: isize,
start_y: isize,
string: &str
) -> Result<(), RectError>
[src]
&mut self,
rect_id: usize,
start_x: isize,
start_y: isize,
string: &str
) -> Result<(), RectError>
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, TOP}; let mut rectmanager = RectManager::new(); rectmanager.set_string(TOP, 0, 0, "This Some Text"); rectmanager.kill();
pub fn get_relative_offset(&self, rect_id: usize) -> Option<(isize, isize)>
[src]
Get the offset relative to the parent rectangle of the given rectangle.
Example
use wrecked::{RectManager, TOP}; let mut rectmanager = RectManager::new(); let mut rect_a = rectmanager.new_rect(TOP).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();
pub fn get_absolute_offset(&self, rect_id: usize) -> Option<(isize, isize)>
[src]
Get the offset relative to the top-level rectangle in the RectManager.
Example
use wrecked::{RectManager, TOP}; let mut rectmanager = RectManager::new(); let mut rect_a = rectmanager.new_rect(TOP).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();
pub fn get_character(
&self,
rect_id: usize,
x: isize,
y: isize
) -> Result<char, RectError>
[src]
&self,
rect_id: usize,
x: isize,
y: isize
) -> Result<char, RectError>
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, TOP}; let mut rectmanager = RectManager::new(); rectmanager.set_character(TOP, 0, 0, 'X'); assert_eq!(rectmanager.get_character(TOP, 0, 0).ok().unwrap(), 'X'); rectmanager.kill();
pub fn set_character(
&mut self,
rect_id: usize,
x: isize,
y: isize,
character: char
) -> Result<(), RectError>
[src]
&mut self,
rect_id: usize,
x: isize,
y: isize,
character: char
) -> Result<(), RectError>
Set the character at the given position of a rectangle.
Example
use wrecked::{RectManager, TOP}; let mut rectmanager = RectManager::new(); rectmanager.set_character(TOP, 0, 0, 'X'); assert_eq!(rectmanager.get_character(TOP, 0, 0).ok().unwrap(), 'X'); rectmanager.kill();
pub fn unset_character(
&mut self,
rect_id: usize,
x: isize,
y: isize
) -> Result<(), RectError>
[src]
&mut self,
rect_id: usize,
x: isize,
y: isize
) -> Result<(), RectError>
Delete a set character of a given rectangle at specified point
Example
use wrecked::{RectManager, TOP}; let mut rectmanager = RectManager::new(); rectmanager.set_character(TOP, 0, 0, 'X'); rectmanager.unset_character(TOP, 0, 0); assert_eq!(rectmanager.get_character(TOP, 0, 0).ok().unwrap(), rectmanager.get_default_character(TOP)); rectmanager.kill();
pub fn delete_rect(&mut self, rect_id: usize) -> Result<(), RectError>
[src]
Completely erase a rectangle & remove it from the RectManager's tree.
Example
use wrecked::{RectManager, TOP}; let mut rectmanager = RectManager::new(); let mut rect = rectmanager.new_rect(TOP).ok().unwrap(); rectmanager.delete_rect(rect); assert!(!rectmanager.has_rect(rect)); rectmanager.kill();
pub fn replace_with(
&mut self,
old_rect_id: usize,
new_rect_id: usize
) -> Result<(), RectError>
[src]
&mut self,
old_rect_id: usize,
new_rect_id: usize
) -> Result<(), RectError>
Swap out one rectangle with another.
Example
use wrecked::{RectManager, TOP}; let mut rectmanager = RectManager::new(); // Create a rectangle that is attached to TOP. let rect_a = rectmanager.new_rect(TOP).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));
pub fn get_rect_width(&mut self, rect_id: usize) -> usize
[src]
Get width of given rectangle
Example
use wrecked::{RectManager, TOP}; let mut rectmanager = RectManager::new(); let mut rect = rectmanager.new_rect(TOP).ok().unwrap(); rectmanager.resize(rect, 10, 10); assert_eq!(rectmanager.get_rect_height(rect), 10); rectmanager.kill();
pub fn get_rect_height(&mut self, rect_id: usize) -> usize
[src]
Get height of given rectangle
Example
use wrecked::{RectManager, TOP}; let mut rectmanager = RectManager::new(); let mut rect = rectmanager.new_rect(TOP).ok().unwrap(); rectmanager.resize(rect, 10, 10); assert_eq!(rectmanager.get_rect_height(rect), 10); rectmanager.kill();
pub fn get_width(&mut self) -> usize
[src]
Gets the width of the RectManager
pub fn get_height(&mut self) -> usize
[src]
Gets the height of the RectManager
pub fn auto_resize(&mut self) -> bool
[src]
If the TOP rectangle dimensions to not match up to the console dimensions, then resize to fit. Returns true if a resize was made.
pub fn set_bold_flag(&mut self, rect_id: usize) -> Result<(), RectError>
[src]
Apply bold effect to text of given rect (does not apply recursively).
Example
use wrecked::{RectManager, TOP}; let mut rectmanager = RectManager::new(); rectmanager.set_bold_flag(TOP); rectmanager.set_string(TOP, 0, 0, "Some Bold Text"); rectmanager.kill();
pub fn unset_bold_flag(&mut self, rect_id: usize) -> Result<(), RectError>
[src]
Disable bold text effect
Example
use wrecked::{RectManager, TOP}; let mut rectmanager = RectManager::new(); rectmanager.set_bold_flag(TOP); rectmanager.unset_bold_flag(TOP); rectmanager.set_string(TOP, 0, 0, "Normal Text"); rectmanager.kill();
pub fn set_underline_flag(&mut self, rect_id: usize) -> Result<(), RectError>
[src]
Apply underline effect to text of given rect (does not apply recursively).
Example
use wrecked::{RectManager, TOP}; let mut rectmanager = RectManager::new(); rectmanager.set_underline_flag(TOP); rectmanager.set_string(TOP, 0, 0, "Some Underlined Text"); rectmanager.kill();
pub fn unset_underline_flag(&mut self, rect_id: usize) -> Result<(), RectError>
[src]
Disable underline text effect
Example
use wrecked::{RectManager, TOP}; let mut rectmanager = RectManager::new(); rectmanager.set_underline_flag(TOP); rectmanager.unset_underline_flag(TOP); rectmanager.set_string(TOP, 0, 0, "Normal Text"); rectmanager.kill();
pub fn set_invert_flag(&mut self, rect_id: usize) -> Result<(), RectError>
[src]
Invert the background and foreground colors of the text of the given rect (does not apply recursively).
Example
use wrecked::{RectManager, TOP}; let mut rectmanager = RectManager::new(); rectmanager.set_invert_flag(TOP); rectmanager.set_string(TOP, 0, 0, "Some Inverted Text"); rectmanager.kill();
pub fn unset_invert_flag(&mut self, rect_id: usize) -> Result<(), RectError>
[src]
Disable invert text effect
Example
use wrecked::{RectManager, TOP}; let mut rectmanager = RectManager::new(); rectmanager.set_invert_flag(TOP); rectmanager.unset_invert_flag(TOP); rectmanager.set_string(TOP, 0, 0, "Normal Text"); rectmanager.kill();
pub fn set_italics_flag(&mut self, rect_id: usize) -> Result<(), RectError>
[src]
Apply italics effect to text of given rect (does not apply recursively).
Example
use wrecked::{RectManager, TOP}; let mut rectmanager = RectManager::new(); rectmanager.set_italics_flag(TOP); rectmanager.set_string(TOP, 0, 0, "Some Italicized Text"); rectmanager.kill();
pub fn unset_italics_flag(&mut self, rect_id: usize) -> Result<(), RectError>
[src]
Disable italics text effect
Example
use wrecked::{RectManager, TOP}; let mut rectmanager = RectManager::new(); rectmanager.set_italics_flag(TOP); rectmanager.unset_italics_flag(TOP); rectmanager.set_string(TOP, 0, 0, "Normal Text"); rectmanager.kill();
pub fn set_strike_flag(&mut self, rect_id: usize) -> Result<(), RectError>
[src]
Apply strike effect to text of given rect (does not apply recursively).
Example
use wrecked::{RectManager, TOP}; let mut rectmanager = RectManager::new(); rectmanager.set_strike_flag(TOP); rectmanager.set_string(TOP, 0, 0, "Some Text With Strikethrough"); rectmanager.kill();
pub fn unset_strike_flag(&mut self, rect_id: usize) -> Result<(), RectError>
[src]
Disable strike text effect
Example
use wrecked::{RectManager, TOP}; let mut rectmanager = RectManager::new(); rectmanager.set_strike_flag(TOP); rectmanager.unset_strike_flag(TOP); rectmanager.set_string(TOP, 0, 0, "Normal Text"); rectmanager.kill();
pub fn set_blink_flag(&mut self, rect_id: usize) -> Result<(), RectError>
[src]
Apply blink effect to text of given rect (does not apply recursively).
Example
use wrecked::{RectManager, TOP}; let mut rectmanager = RectManager::new(); rectmanager.set_blink_flag(TOP); rectmanager.set_string(TOP, 0, 0, "Some Blinking Text"); rectmanager.kill();
pub fn unset_blink_flag(&mut self, rect_id: usize) -> Result<(), RectError>
[src]
Disable blink text effect
Example
use wrecked::{RectManager, TOP}; let mut rectmanager = RectManager::new(); rectmanager.set_blink_flag(TOP); rectmanager.unset_blink_flag(TOP); rectmanager.set_string(TOP, 0, 0, "Normal Text"); rectmanager.kill();
pub fn set_bg_color(
&mut self,
rect_id: usize,
color: RectColor
) -> Result<(), RectError>
[src]
&mut self,
rect_id: usize,
color: RectColor
) -> Result<(), RectError>
Set color of background of given rect (does not apply recursively)
Example
use wrecked::{RectManager, TOP, RectColor}; let mut rectmanager = RectManager::new(); // Give Top a Green background rectmanager.set_fg_color(TOP, RectColor::GREEN); rectmanager.kill();
pub fn unset_bg_color(&mut self, rect_id: usize) -> Result<(), RectError>
[src]
Return background color to default
Example
use wrecked::{RectManager, TOP, RectColor}; let mut rectmanager = RectManager::new(); // Give Top a Magenta background rectmanager.set_bg_color(TOP, RectColor::MAGENTA); // Remove those colors... rectmanager.unset_bg_color(TOP); rectmanager.kill();
pub fn set_fg_color(
&mut self,
rect_id: usize,
color: RectColor
) -> Result<(), RectError>
[src]
&mut self,
rect_id: usize,
color: RectColor
) -> Result<(), RectError>
Set color of foreground (text) of given rect (does not apply recursively)
Example
use wrecked::{RectManager, TOP, RectColor}; let mut rectmanager = RectManager::new(); // Give Top a YELLOW foreground rectmanager.set_fg_color(TOP, RectColor::YELLOW); rectmanager.kill();
pub fn unset_fg_color(&mut self, rect_id: usize) -> Result<(), RectError>
[src]
Return foreground color to default
Example
use wrecked::{RectManager, TOP, RectColor}; let mut rectmanager = RectManager::new(); // Give Top a White foreground rectmanager.set_fg_color(TOP, RectColor::WHITE); // Remove those colors... rectmanager.unset_fg_color(TOP); rectmanager.kill();
pub fn unset_color(&mut self, rect_id: usize) -> Result<(), RectError>
[src]
Return both background and foreground colors to default
Example
use wrecked::{RectManager, TOP, RectColor}; let mut rectmanager = RectManager::new(); // Give Top a Blue background and a White foreground rectmanager.set_bg_color(TOP, RectColor::BLUE); rectmanager.set_fg_color(TOP, RectColor::WHITE); // Remove those colors... rectmanager.unset_color(TOP); rectmanager.kill();
pub fn kill(&mut self) -> Result<(), RectError>
[src]
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();
pub fn get_default_character(&self, rect_id: usize) -> char
[src]
Get the fallback character that would be displayed where no character is set. Defaults to ' '.
pub fn get_parent_id(&self, rect_id: usize) -> Option<usize>
[src]
pub fn has_parent(&self, rect_id: usize) -> bool
[src]
pub fn has_rect(&self, rect_id: usize) -> bool
[src]
pub fn is_transparent(&self, rect_id: usize) -> bool
[src]
pub fn set_transparency(
&mut self,
rect_id: usize,
transparent: bool
) -> Result<(), RectError>
[src]
&mut self,
rect_id: usize,
transparent: bool
) -> Result<(), RectError>
Auto Trait Implementations
impl RefUnwindSafe for RectManager
impl Send for RectManager
impl Sync for RectManager
impl Unpin for RectManager
impl UnwindSafe for RectManager
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,