Struct cursive::Printer [−][src]
pub struct Printer<'a, 'b> { pub offset: XY<usize>, pub output_size: XY<usize>, pub size: XY<usize>, pub content_offset: XY<usize>, pub focused: bool, pub enabled: bool, pub theme: &'a Theme, // some fields omitted }
Expand description
Convenient interface to draw on a subset of the screen.
The area it can print on is defined by offset
and size
.
The part of the content it will print is defined by content_offset
and size
.
Fields
offset: XY<usize>
Offset into the window this printer should start drawing at.
A print request at x
will really print at x + offset
.
output_size: XY<usize>
Size of the area we are allowed to draw on.
Anything outside of this should be discarded.
The view being drawn can ingore this, but anything further than that will be ignored.
size: XY<usize>
Size allocated to the view.
This should be the same value as the one given in the last call to
View::layout
.
content_offset: XY<usize>
Offset into the view for this printer.
The view being drawn can ignore this, but anything to the top-left of this will actually be ignored, so it can be used to skip this part.
A print request x
, will really print at x - content_offset
.
focused: bool
Whether the view to draw is currently focused or not.
enabled: bool
Whether the view to draw is currently enabled or not.
theme: &'a Theme
Currently used theme
Implementations
Clear the screen.
It will discard anything drawn before.
Users rarely need to call this directly.
pub fn print_styled<S>(&self, start: S, text: SpannedStr<'_, Style>) where
S: Into<XY<usize>>,
[src]
pub fn print_styled<S>(&self, start: S, text: SpannedStr<'_, Style>) where
S: Into<XY<usize>>,
[src]Prints some styled text at the given position.
Prints some text at the given position
Prints a vertical line using the given character.
pub fn print_line<T>(
&self,
orientation: Orientation,
start: T,
length: usize,
c: &str
) where
T: Into<XY<usize>>,
[src]
pub fn print_line<T>(
&self,
orientation: Orientation,
start: T,
length: usize,
c: &str
) where
T: Into<XY<usize>>,
[src]Prints a line using the given character.
Prints a horizontal line using the given character.
Returns the color currently used by the parent view.
Call the given closure with a colored printer, that will apply the given color on prints.
Examples
printer.with_color(theme::ColorStyle::highlight(), |printer| { printer.print((0, 0), "This text is highlighted!"); });
Call the given closure with a styled printer, that will apply the given style on prints.
Call the given closure with a modified printer that will apply the given effect on prints.
Call the given closure with a modified printer that will apply the given theme on prints.
Create a new sub-printer with the given theme.
Call the given closure with a modified printer that will apply each given effect on prints.
Prints a rectangular box.
If invert
is true
, and the theme uses Outset
borders, then the
box will use an “inset” style instead.
Examples
printer.print_box((0, 0), (6, 4), false);
Runs the given function using a color depending on the theme.
- If the theme’s borders is
None
, return without callingf
. - If the theme’s borders is “outset” and
invert
isfalse
, useColorStyle::Tertiary
. - Otherwise, use
ColorStyle::Primary
.
Runs the given function using a color depending on the theme.
- If the theme’s borders is
None
, return without callingf
. - If the theme’s borders is “outset” and
invert
istrue
, useColorStyle::tertiary()
. - Otherwise, use
ColorStyle::primary()
.
Apply a selection style and call the given function.
- If
selection
isfalse
, simply usesColorStyle::primary()
. - If
selection
istrue
:- If the printer currently has the focus,
uses
ColorStyle::highlight()
. - Otherwise, uses
ColorStyle::highlight_inactive()
.
- If the printer currently has the focus,
uses
Prints a horizontal delimiter with side border ├
and ┤
.
Returns a sub-printer with the given offset.
It will print in an area slightly to the bottom/right.
Returns a new sub-printer inheriting the given focus.
If self
is focused and focused == true
, the child will be focused.
Otherwise, he will be unfocused.
Returns a new sub-printer inheriting the given enabled state.
If self
is enabled and enabled == true
, the child will be enabled.
Otherwise, he will be disabled.
Returns a new sub-printer for the given viewport.
This is a combination of offset + cropped.
Returns a new sub-printer with a cropped area.
The new printer size will be the minimum of size
and its current size.
Any size reduction happens at the bottom-right.
Returns a new sub-printer with a cropped area.
The new printer size will be the minimum of size
and its current size.
The view will stay centered.
Note that if shrinking by an odd number, the view will round to the top-left.
Returns a new sub-printer with a shrinked area.
The printer size will be reduced by the given border from the bottom-right.
Returns a new sub-printer with a shrinked area.
The printer size will be reduced by the given border, and will stay centered.
Note that if shrinking by an odd number, the view will round to the top-left.
Returns a new sub-printer with a content offset.
This is useful for parent views that only show a subset of their
child, like ScrollView
.
Returns a sub-printer with a different inner size.
This will not change the actual output size, but will appear bigger to users of this printer.
Useful to give to children who think they’re big, but really aren’t.
Trait Implementations
Auto Trait Implementations
impl<'a, 'b> !RefUnwindSafe for Printer<'a, 'b>
impl<'a, 'b> !UnwindSafe for Printer<'a, 'b>
Blanket Implementations
Mutably borrows from an owned value. Read more
Calls the given closure and return the result. Read more
Calls the given closure on self
.