text/
text.rs

1extern crate pushrod;
2extern crate sdl2;
3
4use pushrod::render::engine::Engine;
5use pushrod::render::widget::Widget;
6use pushrod::render::widget_config::CONFIG_COLOR_TEXT;
7use pushrod::render::{make_points, make_size};
8use pushrod::widgets::text_widget::*;
9use sdl2::pixels::Color;
10
11pub fn main() {
12    let sdl_context = sdl2::init().unwrap();
13    let video_subsystem = sdl_context.video().unwrap();
14    let window = video_subsystem
15        .window("pushrod text widget demo", 500, 200)
16        .position_centered()
17        .opengl()
18        .build()
19        .unwrap();
20    let mut engine = Engine::new(500, 200, 20);
21    let mut widget1 = TextWidget::new(
22        String::from("assets/OpenSans-Regular.ttf"),
23        sdl2::ttf::FontStyle::NORMAL,
24        28,
25        TextJustify::Left,
26        String::from("Left Justified"),
27        make_points(20, 16),
28        make_size(460, 40),
29    );
30
31    widget1
32        .get_config()
33        .set_color(CONFIG_COLOR_TEXT, Color::RGB(255, 0, 0));
34
35    let mut widget2 = TextWidget::new(
36        String::from("assets/OpenSans-Regular.ttf"),
37        sdl2::ttf::FontStyle::NORMAL,
38        28,
39        TextJustify::Center,
40        String::from("Center Justified"),
41        make_points(20, 80),
42        make_size(460, 40),
43    );
44
45    widget2
46        .get_config()
47        .set_color(CONFIG_COLOR_TEXT, Color::RGB(0, 255, 0));
48
49    let mut widget3 = TextWidget::new(
50        String::from("assets/OpenSans-Regular.ttf"),
51        sdl2::ttf::FontStyle::NORMAL,
52        28,
53        TextJustify::Right,
54        String::from("Right Justified"),
55        make_points(20, 144),
56        make_size(460, 40),
57    );
58
59    widget3
60        .get_config()
61        .set_color(CONFIG_COLOR_TEXT, Color::RGB(0, 0, 255));
62
63    engine.add_widget(Box::new(widget1), String::from("widget1"));
64    engine.add_widget(Box::new(widget2), String::from("widget2"));
65    engine.add_widget(Box::new(widget3), String::from("widget3"));
66
67    engine.run(sdl_context, window);
68}