image_button/
image_button.rs

1extern crate pushrod;
2extern crate sdl2;
3
4use pushrod::render::engine::Engine;
5use pushrod::render::{make_points, make_size};
6use pushrod::widgets::image_button_widget::*;
7
8pub fn main() {
9    let sdl_context = sdl2::init().unwrap();
10    let video_subsystem = sdl_context.video().unwrap();
11    let window = video_subsystem
12        .window("pushrod-render image button demo", 400, 180)
13        .position_centered()
14        .opengl()
15        .build()
16        .unwrap();
17    let mut engine = Engine::new(400, 180, 60);
18    let widget1 = ImageButtonWidget::new(
19        make_points(20, 20),
20        make_size(360, 40),
21        String::from(" Rust Logo"),
22        24,
23        String::from("assets/rust-48x48.jpg"),
24    );
25    let widget2 = ImageButtonWidget::new(
26        make_points(20, 70),
27        make_size(360, 40),
28        String::from(" Unselected Radio Button"),
29        24,
30        String::from("assets/radio_unselected.png"),
31    );
32    let widget3 = ImageButtonWidget::new(
33        make_points(20, 120),
34        make_size(360, 40),
35        String::from(" Unchecked Button"),
36        24,
37        String::from("assets/checkbox_unselected.png"),
38    );
39
40    engine.add_widget(Box::new(widget1), String::from("widget1"));
41    engine.add_widget(Box::new(widget2), String::from("widget2"));
42    engine.add_widget(Box::new(widget3), String::from("widget3"));
43
44    engine.run(sdl_context, window);
45}