image_button/
image_button.rs1extern 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}