use std::convert::Infallible;
use embedded_graphics::{
mono_font::{ascii::FONT_6X10, MonoTextStyle},
pixelcolor::BinaryColor,
prelude::*,
primitives::Rectangle,
};
use embedded_graphics_simulator::{
BinaryColorTheme, OutputSettingsBuilder, SimulatorDisplay, Window,
};
use embedded_text::{
alignment::HorizontalAlignment,
style::{TextBoxStyle, TextBoxStyleBuilder},
TextBox,
};
fn main() -> Result<(), Infallible> {
let mut display = SimulatorDisplay::new(Size::new(128, 184));
let character_style = MonoTextStyle::new(&FONT_6X10, BinaryColor::On);
TextBox::new(
"Hello, World!\nSome text to demonstrate left alignment.",
Rectangle::new(Point::zero(), Size::new(128, 48)),
character_style,
)
.draw(&mut display)?;
TextBox::with_alignment(
"Hello, World!\nSome text to demonstrate center alignment.",
Rectangle::new(Point::new(0, 48), Size::new(128, 48)),
character_style,
HorizontalAlignment::Center,
)
.draw(&mut display)?;
TextBox::with_textbox_style(
"Hello, World!\nSome text to demonstrate right alignment.",
Rectangle::new(Point::new(0, 96), Size::new(128, 48)),
character_style,
TextBoxStyle::with_alignment(HorizontalAlignment::Right),
)
.draw(&mut display)?;
TextBox::with_textbox_style(
"Hello, World!\nSome text to demonstrate fully justified alignment.",
Rectangle::new(Point::new(0, 144), Size::new(128, 48)),
character_style,
TextBoxStyleBuilder::new()
.alignment(HorizontalAlignment::Justified)
.build(),
)
.draw(&mut display)?;
let output_settings = OutputSettingsBuilder::new()
.theme(BinaryColorTheme::OledBlue)
.scale(2)
.build();
Window::new("Horizontal alignment example", &output_settings).show_static(&display);
Ok(())
}