Struct gemini_engine::elements::ascii::Text
source · #[non_exhaustive]pub struct Text {
pub pos: Vec2D,
pub content: String,
pub align: TextAlign,
pub modifier: Modifier,
}Expand description
Displays text at the given position
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.pos: Vec2DThe position of the text. You can use Text::align to determine how it aligns to this position
content: StringThe actual text content of the element
align: TextAlignHow the content should align to the position
modifier: ModifierA raw Modifier, determining the appearance of the Text
Implementations§
source§impl Text
impl Text
sourcepub fn new(pos: Vec2D, content: &str, modifier: Modifier) -> Self
pub fn new(pos: Vec2D, content: &str, modifier: Modifier) -> Self
Create a new Text element with a position, content and modifier
§Panics
This function will panic if the content contains a newline, as Text only works with single lines. For multi-line strings, see Sprite
Examples found in repository?
examples/self-resizing.rs (line 20)
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
fn main() {
let mut scale_view = ScaleFitView::new(ColChar::BACKGROUND);
let mut text = Text::new(Vec2D::ZERO, "This is some centered text!", Modifier::None)
.with_align(TextAlign::Centered);
let mut sprite =
Sprite::new(Vec2D::ZERO, TEXTURE, Modifier::None).with_align(TextAlign2D::CENTERED);
loop {
text.pos = scale_view.intended_size() / 2;
sprite.pos = scale_view.intended_size() / 2;
sprite.pos.y -= 5;
scale_view.update();
scale_view.view.blit(&text, Wrapping::Wrap);
scale_view.view.blit(&sprite, Wrapping::Wrap);
let _ = scale_view.view.display_render();
sleep(Duration::from_millis(10));
}
}sourcepub const fn with_align(self, align: TextAlign) -> Self
pub const fn with_align(self, align: TextAlign) -> Self
Return the Text with the modified align property
Examples found in repository?
examples/self-resizing.rs (line 21)
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
fn main() {
let mut scale_view = ScaleFitView::new(ColChar::BACKGROUND);
let mut text = Text::new(Vec2D::ZERO, "This is some centered text!", Modifier::None)
.with_align(TextAlign::Centered);
let mut sprite =
Sprite::new(Vec2D::ZERO, TEXTURE, Modifier::None).with_align(TextAlign2D::CENTERED);
loop {
text.pos = scale_view.intended_size() / 2;
sprite.pos = scale_view.intended_size() / 2;
sprite.pos.y -= 5;
scale_view.update();
scale_view.view.blit(&text, Wrapping::Wrap);
scale_view.view.blit(&sprite, Wrapping::Wrap);
let _ = scale_view.view.display_render();
sleep(Duration::from_millis(10));
}
}Trait Implementations§
source§impl ViewElement for Text
impl ViewElement for Text
source§fn active_pixels(&self) -> Vec<Pixel>
fn active_pixels(&self) -> Vec<Pixel>
Return a vector of the element’s
Pixels - A ColChar. If your whole object is a solid colour, consider using utils::points_to_pixels() which will add the same ColChar to every point and can then be used as this function’s outputsource§fn active_points(&self) -> Vec<Vec2D>
fn active_points(&self) -> Vec<Vec2D>
Return the positions the
ViewElement occupies, essentially active_pixels() without the ColChars. This has a default setting that extracts the Vec2Ds from active_pixels but you can set it to something else to make it fasterAuto Trait Implementations§
impl RefUnwindSafe for Text
impl Send for Text
impl Sync for Text
impl Unpin for Text
impl UnwindSafe for Text
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more