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}