closable_tab/
closable_tab.rs1use fltk::{enums::*, prelude::*, *};
2
3fn tab_close_cb(g: &mut impl GroupExt) {
4 if app::callback_reason() == CallbackReason::Closed {
5 let mut parent = g.parent().unwrap();
6 parent.remove(g);
7 app::redraw();
8 }
9}
10
11fn main() {
12 let app = app::App::default();
13 let mut win = window::Window::default().with_size(800, 600);
14 let row = group::Flex::default_fill().row();
15 let mut tabs = group::Tabs::default();
16 tabs.set_tab_align(enums::Align::Right);
17 tabs.handle_overflow(group::TabsOverflow::Compress);
18 {
20 let mut col1 = group::Flex::default().with_label("\t\ttab1").column();
21 col1.set_when(When::Closed);
22 col1.set_callback(tab_close_cb);
23 col1.end();
25 }
26 {
30 let mut col2 = group::Flex::default().with_label("\t\ttab2").column();
31 col2.set_when(When::Closed);
32 col2.set_callback(tab_close_cb);
33 col2.end();
35 }
36 tabs.end();
38 tabs.auto_layout();
39 row.end();
40 win.end();
41 win.show();
42 app.run().unwrap();
43}