wizard/
wizard.rs

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}