push_button/
push_button.rs1extern crate pushrod;
2extern crate sdl2;
3
4use pushrod::render::engine::Engine;
5use pushrod::render::widget::Widget;
6use pushrod::render::widget_config::{CONFIG_BORDER_WIDTH, CONFIG_COLOR_BORDER};
7use pushrod::render::{make_points, make_size};
8use pushrod::widgets::push_button_widget::PushButtonWidget;
9use sdl2::pixels::Color;
10
11pub fn main() {
17 let sdl_context = sdl2::init().unwrap();
18 let video_subsystem = sdl_context.video().unwrap();
19 let window = video_subsystem
20 .window("pushrod-render push button demo", 400, 100)
21 .position_centered()
22 .opengl()
23 .build()
24 .unwrap();
25 let mut engine = Engine::new(400, 100, 30);
26 let mut button1 = PushButtonWidget::new(
27 make_points(20, 20),
28 make_size(360, 60),
29 String::from("Click me!"),
30 40,
31 );
32
33 button1.set_color(CONFIG_COLOR_BORDER, Color::RGB(0, 0, 0));
34 button1.set_numeric(CONFIG_BORDER_WIDTH, 2);
35 button1.on_click(|_x, _widgets, _layouts| {
36 eprintln!("Click me clicked!");
37 });
38
39 engine.add_widget(Box::new(button1), String::from("button1"));
40
41 engine.run(sdl_context, window);
42}