1use fltk::{
2 app, button, group,
3 prelude::{GroupExt, WidgetExt, WidgetProps},
4 window,
5};
6
7pub fn show_wizard(_but: &mut button::Button) {
8 let mut win = window::Window::default()
9 .with_size(400, 300)
10 .with_label("Wizard");
11 let mut wizard = group::Wizard::default().with_size(400, 300);
12 let grp1 = group::Group::default().size_of(&wizard);
13 let mut but1 = button::Button::default()
14 .with_size(80, 40)
15 .center_of(&wizard)
16 .with_label("next");
17 grp1.end();
18 let grp2 = group::Group::default().size_of(&wizard);
19 let mut pack = group::Pack::default().with_size(160, 40).center_of(&grp2);
20 pack.set_type(group::PackType::Horizontal);
21 let mut but2 = button::Button::default()
22 .with_size(80, 0)
23 .center_of(&wizard)
24 .with_label("previous");
25 let mut but3 = button::Button::default()
26 .with_size(80, 0)
27 .center_of(&wizard)
28 .with_label("next");
29 pack.end();
30 grp2.end();
31 let grp3 = group::Group::default().size_of(&wizard);
32 let mut but4 = button::Button::default()
33 .with_size(80, 40)
34 .center_of(&wizard)
35 .with_label("previous");
36 grp3.end();
37 wizard.end();
38 win.end();
39 win.show();
40 but1.set_callback({
41 let mut wiz_c = wizard.clone();
42 move |_| wiz_c.next()
43 });
44 but2.set_callback({
45 let mut wiz_c = wizard.clone();
46 move |_| wiz_c.prev()
47 });
48 but3.set_callback({
49 let mut wiz_c = wizard.clone();
50 move |_| wiz_c.next()
51 });
52 but4.set_callback(move |_| wizard.prev());
53}
54
55fn main() {
56 let app = app::App::default().with_scheme(app::Scheme::Gtk);
57 let mut win = window::Window::default().with_size(400, 300);
58 let _but = {
59 let mut b = button::Button::default()
60 .with_size(160, 40)
61 .with_label("Show wizard")
62 .center_of(&win);
63 b.set_callback(show_wizard);
64 b
65 };
66 win.end();
67 win.show();
68 app.run().unwrap();
69}