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
fn poll_event(&mut self) -> Option<Event>
[src]
fn poll_event(&mut self) -> Option<Event>
[src]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.
fn has_colors(&self) -> bool
[src]
fn has_colors(&self) -> bool
[src]Should return true
if this backend supports colors.
fn screen_size(&self) -> XY<usize>
[src]
fn screen_size(&self) -> XY<usize>
[src]Returns the screen size.
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.
fn set_effect(&self, effect: Effect)
[src]
fn set_effect(&self, effect: Effect)
[src]Enables the given effect.
Any call to print_at
from now on should use the given effect.
fn unset_effect(&self, effect: Effect)
[src]
fn unset_effect(&self, effect: Effect)
[src]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.
Implementors
blt-backend
only.crossterm-backend
only.ncurses-backend
only.pancurses-backend
only.termion-backend
only.