Trait cursive::backend::Backend[][src]

pub trait Backend {
    fn poll_event(&mut self) -> Option<Event>;
fn refresh(&mut self);
fn has_colors(&self) -> bool;
fn screen_size(&self) -> XY<usize>;
fn print_at(&self, pos: XY<usize>, text: &str);
fn clear(&self, color: Color);
fn set_color(&self, colors: ColorPair) -> ColorPair;
fn set_effect(&self, effect: Effect);
fn unset_effect(&self, effect: Effect); fn print_at_rep(&self, pos: XY<usize>, repetitions: usize, text: &str) { ... }
fn name(&self) -> &str { ... } }
Expand description

Trait defining the required methods to be a backend.

A backend is the interface between the abstract view tree and the actual input/output, like a terminal.

It usually delegates the work to a terminal-handling library like ncurses or termion, or it can entirely simulate a terminal and show it as a graphical window (BearLibTerminal).

When creating a new cursive tree with Cursive::new(), you will need to provide a backend initializer - usually their init() function.

Backends are responsible for handling input and converting it to Event. Input must be non-blocking, it will be polled regularly.

Required methods

Polls the backend for any input.

Should return immediately:

  • None if no event is currently available.
  • Some(event) for each event to process.

Refresh the screen.

This will be called each frame after drawing has been done.

A backend could, for example, buffer any print command, and apply everything when refresh() is called.

Should return true if this backend supports colors.

Returns the screen size.

Main method used for printing

Clears the screen with the given color.

Starts using a new color.

This should return the previously active color.

Any call to print_at from now on should use the given color.

Enables the given effect.

Any call to print_at from now on should use the given effect.

Disables the given effect.

Provided methods

Efficient method to print repetitions of the same text.

Usually used to draw horizontal lines/borders.

It is a small optimization to avoid moving the cursor after each step.

Returns a name to identify the backend.

Mostly used for debugging.

Implementors

This is supported on crate feature blt-backend only.
This is supported on crate feature crossterm-backend only.
This is supported on crate feature ncurses-backend only.
This is supported on crate feature pancurses-backend only.
This is supported on crate feature termion-backend only.