pub struct Flex { /* private fields */ }
Expand description
a Flexbox widget
§Example
use fltk::{prelude::*, *};
fn main() {
let a = app::App::default();
let mut win = window::Window::default().with_size(400, 300);
let mut col = group::Flex::default().size_of_parent();
col.set_type(group::FlexType::Column);
let expanding = button::Button::default().with_label("Expanding");
let mut normal = button::Button::default().with_label("Normal");
col.fixed(&mut normal, 30);
col.end();
win.end();
win.show();
a.run().unwrap();
}
Implementations§
Source§impl Flex
impl Flex
Sourcepub fn new<'a, T: Into<Option<&'a str>>>(
x: i32,
y: i32,
width: i32,
height: i32,
title: T,
) -> Flex
pub fn new<'a, T: Into<Option<&'a str>>>( x: i32, y: i32, width: i32, height: i32, title: T, ) -> Flex
Creates a new widget, takes an x, y coordinates, as well as a width and height, plus a title
§Arguments
x
- The x coordinate in the screeny
- The y coordinate in the screenwidth
- The width of the widgetheigth
- The height of the widgettitle
- The title or label of the widget
To use dynamic strings use with_label(self, &str)
or set_label(&mut self, &str)
.
labels support special symbols preceded by an @
sign
and for the associated formatting.
Sourcepub fn default_fill() -> Self
pub fn default_fill() -> Self
Constructs a widget with the size of its parent
Examples found in repository?
3fn main() {
4 let a = app::App::default().with_scheme(app::Scheme::Gtk);
5 let mut win = window::Window::default().with_size(640, 480);
6 let mut col = group::Flex::default_fill().column();
7 main_panel(&mut col);
8 col.end();
9 win.resizable(&col);
10 win.set_color(enums::Color::from_rgb(250, 250, 250));
11 win.end();
12 win.show();
13 win.size_range(600, 400, 0, 0);
14 a.run().unwrap();
15}
More examples
3fn main() {
4 let app = app::App::default();
5 let mut wind = Window::default().with_size(400, 300);
6 let mut col = Flex::default_fill().column();
7 col.set_margins(120, 80, 120, 80);
8 let mut frame = Frame::default();
9 let mut but = Button::default().with_label("Click me!");
10 col.fixed(&but, 40);
11 col.end();
12 wind.end();
13 wind.show();
14
15 but.set_callback(move |_| frame.set_label("Hello world"));
16
17 app.run().unwrap();
18}
42fn main() {
43 let app = app::App::default();
44 app::set_visible_focus(false);
45 let mut win = window::Window::default().with_size(500, 400);
46 win.make_resizable(true);
47 win.set_color(enums::Color::Black);
48 let mut col = group::Flex::default_fill().column();
49 col.set_margin(20);
50 col.set_pad(10);
51
52 for i in 0..3 {
53 let label = format!("Button {}", i + 1);
54 let mut but = MyButton::new(500, 100);
55 but.set_label(&label);
56 but.set_callback(move |_| println!("{label}"));
57 }
58
59 col.end();
60 win.end();
61 win.show();
62 app.run().unwrap();
63}
49fn main() {
50 let counter = Counter { count: 0 };
51 let _state = app::GlobalState::new(counter);
52 let app = app::App::default().with_scheme(app::Scheme::Gtk);
53 let mut wind = window::Window::default()
54 .with_size(160, 200)
55 .with_label("Counter");
56 let col = group::Flex::default_fill().column();
57 button::Button::default()
58 .with_label("+")
59 .on_trigger(increment); // passed by function object
60 frame::Frame::default().with_label("0").with_id("my_frame"); // pass id here
61 button::Button::default()
62 .with_label("-")
63 .on_trigger(|_| increment_by(-1)); // called in closure
64 col.end();
65 wind.make_resizable(true);
66 wind.end();
67 wind.show();
68
69 app.run().unwrap();
70}
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 // first tab
19 {
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 // widgets
24 col1.end();
25 }
26 // end first tab
27
28 // second tab
29 {
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 // widgets
34 col2.end();
35 }
36 // end second tab
37 tabs.end();
38 tabs.auto_layout();
39 row.end();
40 win.end();
41 win.show();
42 app.run().unwrap();
43}
12fn draw_gallery() {
13 let mut tab = Tabs::default_fill();
14
15 let mut grp1 = Flex::default_fill().with_label("Tab1\t\t").row();
16 let mut col = Flex::default().column();
17 grp1.fixed(&col, 160);
18 col.set_pad(10);
19 col.set_margin(10);
20 let _but1 = Button::default().with_label("Button");
21 let _but2 = RoundButton::default().with_label("Round");
22 let _but3 = CheckButton::default().with_label("Check");
23 let _but4 = LightButton::default().with_label("Light");
24 let mut but5 = MenuButton::default().with_label("Menu");
25 but5.add_choice("Hello|World|From|Rust");
26 let _but6 = ReturnButton::default().with_label("Return");
27 let mut chce = Choice::default();
28 chce.add_choice("Hello");
29 let _inp = Input::default();
30 let mut out = Output::default();
31 out.set_value("output");
32 col.end();
33 grp1.end();
34
35 let grp2 = Flex::default_fill().with_label("Tab2\t\t").row();
36 grp2.end();
37 tab.end();
38 tab.auto_layout();
39}
Source§impl Flex
impl Flex
Sourcepub fn fixed<W: WidgetExt>(&mut self, w: &W, size: i32)
pub fn fixed<W: WidgetExt>(&mut self, w: &W, size: i32)
Set the size of the widget, same as set_size
, but more inline with the new FLTK Fl_Flex
api
Examples found in repository?
3fn main() {
4 let app = app::App::default();
5 let mut wind = Window::default().with_size(400, 300);
6 let mut col = Flex::default_fill().column();
7 col.set_margins(120, 80, 120, 80);
8 let mut frame = Frame::default();
9 let mut but = Button::default().with_label("Click me!");
10 col.fixed(&but, 40);
11 col.end();
12 wind.end();
13 wind.show();
14
15 but.set_callback(move |_| frame.set_label("Hello world"));
16
17 app.run().unwrap();
18}
More examples
12fn draw_gallery() {
13 let mut tab = Tabs::default_fill();
14
15 let mut grp1 = Flex::default_fill().with_label("Tab1\t\t").row();
16 let mut col = Flex::default().column();
17 grp1.fixed(&col, 160);
18 col.set_pad(10);
19 col.set_margin(10);
20 let _but1 = Button::default().with_label("Button");
21 let _but2 = RoundButton::default().with_label("Round");
22 let _but3 = CheckButton::default().with_label("Check");
23 let _but4 = LightButton::default().with_label("Light");
24 let mut but5 = MenuButton::default().with_label("Menu");
25 but5.add_choice("Hello|World|From|Rust");
26 let _but6 = ReturnButton::default().with_label("Return");
27 let mut chce = Choice::default();
28 chce.add_choice("Hello");
29 let _inp = Input::default();
30 let mut out = Output::default();
31 out.set_value("output");
32 col.end();
33 grp1.end();
34
35 let grp2 = Flex::default_fill().with_label("Tab2\t\t").row();
36 grp2.end();
37 tab.end();
38 tab.auto_layout();
39}
246fn main() {
247 let a = app::App::default().with_scheme(app::Scheme::Oxy);
248 app::get_system_colors();
249
250 let mut buf = text::TextBuffer::default();
251 buf.set_tab_distance(4);
252
253 let state = State::new(buf.clone());
254 app::GlobalState::new(state);
255
256 let mut w = window::Window::default()
257 .with_size(WIDTH, HEIGHT)
258 .with_label("Ted");
259 w.set_xclass("ted");
260 {
261 let mut col = group::Flex::default_fill().column();
262 col.set_pad(0);
263 let mut m = menu::SysMenuBar::default();
264 init_menu(&mut m);
265 let mut ed = text::TextEditor::default().with_id("ed");
266 ed.set_buffer(buf);
267 ed.set_linenumber_width(40);
268 ed.set_text_font(Font::Courier);
269 ed.set_when(When::Changed);
270 ed.set_callback(editor_cb);
271 handle_drag_drop(&mut ed);
272 w.resizable(&col);
273 col.fixed(&m, 30);
274 col.end();
275 }
276 w.end();
277 w.show();
278 w.set_callback(win_cb);
279 a.run().unwrap();
280}
37 pub fn new() -> Self {
38 let a = app::App::default();
39 MyApp::init_styles();
40 let (s, r) = app::channel();
41
42 let (inp1, inp2) = {
43 let mut win = window::Window::default().with_size(150, 200);
44 let mut flex = group::Flex::default()
45 .with_size(130, 180)
46 .center_of(&win)
47 .column();
48 make_label("Celcius");
49 let mut inp1 = input::FloatInput::default().with_size(0, 40);
50 make_label("Fahrenheit");
51 let mut inp2 = input::FloatInput::default().with_size(0, 40);
52 flex.fixed(&inp1, 30);
53 flex.fixed(&inp2, 30);
54 flex.end();
55 win.end();
56 win.make_resizable(true);
57 win.show();
58
59 inp1.set_value(&format!("{}", 0.0));
60 inp2.set_value(&format!("{}", 32.0));
61
62 inp1.set_when(When::Changed);
63 inp2.set_when(When::Changed);
64
65 inp1.emit(s, Message::CelciusChanged);
66 inp2.emit(s, Message::FahrenheitChanged);
67
68 (inp1, inp2)
69 };
70 Self { a, inp1, inp2, r }
71 }
17fn buttons_panel(parent: &mut group::Flex) {
18 frame::Frame::default();
19 let w = frame::Frame::default().with_label("Welcome to Flex Login");
20
21 let mut urow = group::Flex::default().row();
22 {
23 frame::Frame::default()
24 .with_label("Username:")
25 .with_align(enums::Align::Inside | enums::Align::Right);
26 let username = input::Input::default();
27
28 urow.fixed(&username, 180);
29 urow.end();
30 }
31
32 let mut prow = group::Flex::default().row();
33 {
34 frame::Frame::default()
35 .with_label("Password:")
36 .with_align(enums::Align::Inside | enums::Align::Right);
37 let password = input::Input::default();
38
39 prow.fixed(&password, 180);
40 prow.end();
41 }
42
43 let pad = frame::Frame::default();
44
45 let mut brow = group::Flex::default().row();
46 {
47 frame::Frame::default();
48 let reg = create_button("Register");
49 let login = create_button("Login");
50
51 brow.fixed(®, 80);
52 brow.fixed(&login, 80);
53 brow.end();
54 }
55
56 let b = frame::Frame::default();
57
58 frame::Frame::default();
59
60 parent.fixed(&w, 60);
61 parent.fixed(&urow, 30);
62 parent.fixed(&prow, 30);
63 parent.fixed(&pad, 1);
64 parent.fixed(&brow, 30);
65 parent.fixed(&b, 30);
66}
67
68fn middle_panel(parent: &mut group::Flex) {
69 frame::Frame::default();
70
71 let mut frame = frame::Frame::default().with_label("Image");
72 frame.set_frame(enums::FrameType::BorderBox);
73 frame.set_color(enums::Color::from_rgb(0, 200, 0));
74 let spacer = frame::Frame::default();
75
76 let mut bp = group::Flex::default().column();
77 buttons_panel(&mut bp);
78 bp.end();
79
80 frame::Frame::default();
81
82 parent.fixed(&frame, 200);
83 parent.fixed(&spacer, 10);
84 parent.fixed(&bp, 300);
85}
86
87fn main_panel(parent: &mut group::Flex) {
88 frame::Frame::default();
89
90 let mut mp = group::Flex::default().row();
91 middle_panel(&mut mp);
92 mp.end();
93
94 frame::Frame::default();
95
96 parent.fixed(&mp, 200);
97}
22fn main() {
23 let app = app::App::default();
24 let mut win = window::Window::default()
25 .with_size(1000, 800)
26 .with_label("Frames");
27 win.set_center_screen();
28
29 let mut col = group::Flex::default_fill().column();
30 col.set_margin(20);
31
32 let mut row = group::Flex::default();
33 col.fixed(&row, 75);
34 for i in 0..8 {
35 let _ = MyFrame::new(i);
36 }
37 row.end();
38 row.set_pad(10);
39
40 let mut row = group::Flex::default();
41 col.fixed(&row, 75);
42 for i in 8..17 {
43 let _ = MyFrame::new(i);
44 }
45 row.end();
46 row.set_pad(10);
47
48 let mut row = group::Flex::default();
49 col.fixed(&row, 75);
50 for i in 17..26 {
51 let _ = MyFrame::new(i);
52 }
53 row.end();
54 row.set_pad(10);
55
56 let mut row = group::Flex::default();
57 col.fixed(&row, 75);
58 for i in 26..35 {
59 let _ = MyFrame::new(i);
60 }
61 row.end();
62 row.set_pad(10);
63
64 let mut row = group::Flex::default();
65 col.fixed(&row, 75);
66 for i in 35..44 {
67 let _ = MyFrame::new(i);
68 }
69 row.end();
70 row.set_pad(10);
71
72 let mut row = group::Flex::default();
73 col.fixed(&row, 75);
74 for i in 44..53 {
75 let _ = MyFrame::new(i);
76 }
77 row.end();
78 row.set_pad(10);
79
80 col.end();
81 col.set_pad(30);
82
83 win.end();
84 win.show();
85 win.set_color(enums::Color::White);
86
87 app.run().unwrap();
88}
Sourcepub fn column(self) -> Self
pub fn column(self) -> Self
Set the type to be a column
Examples found in repository?
3fn main() {
4 let a = app::App::default().with_scheme(app::Scheme::Gtk);
5 let mut win = window::Window::default().with_size(640, 480);
6 let mut col = group::Flex::default_fill().column();
7 main_panel(&mut col);
8 col.end();
9 win.resizable(&col);
10 win.set_color(enums::Color::from_rgb(250, 250, 250));
11 win.end();
12 win.show();
13 win.size_range(600, 400, 0, 0);
14 a.run().unwrap();
15}
16
17fn buttons_panel(parent: &mut group::Flex) {
18 frame::Frame::default();
19 let w = frame::Frame::default().with_label("Welcome to Flex Login");
20
21 let mut urow = group::Flex::default().row();
22 {
23 frame::Frame::default()
24 .with_label("Username:")
25 .with_align(enums::Align::Inside | enums::Align::Right);
26 let username = input::Input::default();
27
28 urow.fixed(&username, 180);
29 urow.end();
30 }
31
32 let mut prow = group::Flex::default().row();
33 {
34 frame::Frame::default()
35 .with_label("Password:")
36 .with_align(enums::Align::Inside | enums::Align::Right);
37 let password = input::Input::default();
38
39 prow.fixed(&password, 180);
40 prow.end();
41 }
42
43 let pad = frame::Frame::default();
44
45 let mut brow = group::Flex::default().row();
46 {
47 frame::Frame::default();
48 let reg = create_button("Register");
49 let login = create_button("Login");
50
51 brow.fixed(®, 80);
52 brow.fixed(&login, 80);
53 brow.end();
54 }
55
56 let b = frame::Frame::default();
57
58 frame::Frame::default();
59
60 parent.fixed(&w, 60);
61 parent.fixed(&urow, 30);
62 parent.fixed(&prow, 30);
63 parent.fixed(&pad, 1);
64 parent.fixed(&brow, 30);
65 parent.fixed(&b, 30);
66}
67
68fn middle_panel(parent: &mut group::Flex) {
69 frame::Frame::default();
70
71 let mut frame = frame::Frame::default().with_label("Image");
72 frame.set_frame(enums::FrameType::BorderBox);
73 frame.set_color(enums::Color::from_rgb(0, 200, 0));
74 let spacer = frame::Frame::default();
75
76 let mut bp = group::Flex::default().column();
77 buttons_panel(&mut bp);
78 bp.end();
79
80 frame::Frame::default();
81
82 parent.fixed(&frame, 200);
83 parent.fixed(&spacer, 10);
84 parent.fixed(&bp, 300);
85}
More examples
3fn main() {
4 let app = app::App::default();
5 let mut wind = Window::default().with_size(400, 300);
6 let mut col = Flex::default_fill().column();
7 col.set_margins(120, 80, 120, 80);
8 let mut frame = Frame::default();
9 let mut but = Button::default().with_label("Click me!");
10 col.fixed(&but, 40);
11 col.end();
12 wind.end();
13 wind.show();
14
15 but.set_callback(move |_| frame.set_label("Hello world"));
16
17 app.run().unwrap();
18}
42fn main() {
43 let app = app::App::default();
44 app::set_visible_focus(false);
45 let mut win = window::Window::default().with_size(500, 400);
46 win.make_resizable(true);
47 win.set_color(enums::Color::Black);
48 let mut col = group::Flex::default_fill().column();
49 col.set_margin(20);
50 col.set_pad(10);
51
52 for i in 0..3 {
53 let label = format!("Button {}", i + 1);
54 let mut but = MyButton::new(500, 100);
55 but.set_label(&label);
56 but.set_callback(move |_| println!("{label}"));
57 }
58
59 col.end();
60 win.end();
61 win.show();
62 app.run().unwrap();
63}
49fn main() {
50 let counter = Counter { count: 0 };
51 let _state = app::GlobalState::new(counter);
52 let app = app::App::default().with_scheme(app::Scheme::Gtk);
53 let mut wind = window::Window::default()
54 .with_size(160, 200)
55 .with_label("Counter");
56 let col = group::Flex::default_fill().column();
57 button::Button::default()
58 .with_label("+")
59 .on_trigger(increment); // passed by function object
60 frame::Frame::default().with_label("0").with_id("my_frame"); // pass id here
61 button::Button::default()
62 .with_label("-")
63 .on_trigger(|_| increment_by(-1)); // called in closure
64 col.end();
65 wind.make_resizable(true);
66 wind.end();
67 wind.show();
68
69 app.run().unwrap();
70}
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 // first tab
19 {
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 // widgets
24 col1.end();
25 }
26 // end first tab
27
28 // second tab
29 {
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 // widgets
34 col2.end();
35 }
36 // end second tab
37 tabs.end();
38 tabs.auto_layout();
39 row.end();
40 win.end();
41 win.show();
42 app.run().unwrap();
43}
12fn draw_gallery() {
13 let mut tab = Tabs::default_fill();
14
15 let mut grp1 = Flex::default_fill().with_label("Tab1\t\t").row();
16 let mut col = Flex::default().column();
17 grp1.fixed(&col, 160);
18 col.set_pad(10);
19 col.set_margin(10);
20 let _but1 = Button::default().with_label("Button");
21 let _but2 = RoundButton::default().with_label("Round");
22 let _but3 = CheckButton::default().with_label("Check");
23 let _but4 = LightButton::default().with_label("Light");
24 let mut but5 = MenuButton::default().with_label("Menu");
25 but5.add_choice("Hello|World|From|Rust");
26 let _but6 = ReturnButton::default().with_label("Return");
27 let mut chce = Choice::default();
28 chce.add_choice("Hello");
29 let _inp = Input::default();
30 let mut out = Output::default();
31 out.set_value("output");
32 col.end();
33 grp1.end();
34
35 let grp2 = Flex::default_fill().with_label("Tab2\t\t").row();
36 grp2.end();
37 tab.end();
38 tab.auto_layout();
39}
Sourcepub fn row(self) -> Self
pub fn row(self) -> Self
Set the type to a row
Examples found in repository?
46fn main() {
47 let app = app::App::default().with_scheme(app::Scheme::Gleam);
48 app::background(0, 0, 0);
49 let image = image::SharedImage::load("screenshots/calc2.jpg")
50 .unwrap()
51 .as_rgb_image()
52 .unwrap();
53
54 let mut wind = window::Window::new(100, 100, 800, 400, "Hello from rust");
55 let row = group::Flex::default()
56 .row()
57 .with_size(800, 200)
58 .center_of_parent();
59 for i in 1..=4 {
60 let color_depth = enums::ColorDepth::from_u8(i).unwrap();
61 let image = image.convert(color_depth).unwrap();
62 RoundImageBox::new(100, image);
63 }
64 row.end();
65 wind.end();
66 wind.show();
67
68 app.run().unwrap();
69}
More examples
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 // first tab
19 {
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 // widgets
24 col1.end();
25 }
26 // end first tab
27
28 // second tab
29 {
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 // widgets
34 col2.end();
35 }
36 // end second tab
37 tabs.end();
38 tabs.auto_layout();
39 row.end();
40 win.end();
41 win.show();
42 app.run().unwrap();
43}
12fn draw_gallery() {
13 let mut tab = Tabs::default_fill();
14
15 let mut grp1 = Flex::default_fill().with_label("Tab1\t\t").row();
16 let mut col = Flex::default().column();
17 grp1.fixed(&col, 160);
18 col.set_pad(10);
19 col.set_margin(10);
20 let _but1 = Button::default().with_label("Button");
21 let _but2 = RoundButton::default().with_label("Round");
22 let _but3 = CheckButton::default().with_label("Check");
23 let _but4 = LightButton::default().with_label("Light");
24 let mut but5 = MenuButton::default().with_label("Menu");
25 but5.add_choice("Hello|World|From|Rust");
26 let _but6 = ReturnButton::default().with_label("Return");
27 let mut chce = Choice::default();
28 chce.add_choice("Hello");
29 let _inp = Input::default();
30 let mut out = Output::default();
31 out.set_value("output");
32 col.end();
33 grp1.end();
34
35 let grp2 = Flex::default_fill().with_label("Tab2\t\t").row();
36 grp2.end();
37 tab.end();
38 tab.auto_layout();
39}
17fn buttons_panel(parent: &mut group::Flex) {
18 frame::Frame::default();
19 let w = frame::Frame::default().with_label("Welcome to Flex Login");
20
21 let mut urow = group::Flex::default().row();
22 {
23 frame::Frame::default()
24 .with_label("Username:")
25 .with_align(enums::Align::Inside | enums::Align::Right);
26 let username = input::Input::default();
27
28 urow.fixed(&username, 180);
29 urow.end();
30 }
31
32 let mut prow = group::Flex::default().row();
33 {
34 frame::Frame::default()
35 .with_label("Password:")
36 .with_align(enums::Align::Inside | enums::Align::Right);
37 let password = input::Input::default();
38
39 prow.fixed(&password, 180);
40 prow.end();
41 }
42
43 let pad = frame::Frame::default();
44
45 let mut brow = group::Flex::default().row();
46 {
47 frame::Frame::default();
48 let reg = create_button("Register");
49 let login = create_button("Login");
50
51 brow.fixed(®, 80);
52 brow.fixed(&login, 80);
53 brow.end();
54 }
55
56 let b = frame::Frame::default();
57
58 frame::Frame::default();
59
60 parent.fixed(&w, 60);
61 parent.fixed(&urow, 30);
62 parent.fixed(&prow, 30);
63 parent.fixed(&pad, 1);
64 parent.fixed(&brow, 30);
65 parent.fixed(&b, 30);
66}
67
68fn middle_panel(parent: &mut group::Flex) {
69 frame::Frame::default();
70
71 let mut frame = frame::Frame::default().with_label("Image");
72 frame.set_frame(enums::FrameType::BorderBox);
73 frame.set_color(enums::Color::from_rgb(0, 200, 0));
74 let spacer = frame::Frame::default();
75
76 let mut bp = group::Flex::default().column();
77 buttons_panel(&mut bp);
78 bp.end();
79
80 frame::Frame::default();
81
82 parent.fixed(&frame, 200);
83 parent.fixed(&spacer, 10);
84 parent.fixed(&bp, 300);
85}
86
87fn main_panel(parent: &mut group::Flex) {
88 frame::Frame::default();
89
90 let mut mp = group::Flex::default().row();
91 middle_panel(&mut mp);
92 mp.end();
93
94 frame::Frame::default();
95
96 parent.fixed(&mp, 200);
97}
Sourcepub fn set_margin(&mut self, m: i32)
pub fn set_margin(&mut self, m: i32)
Set the margin
Examples found in repository?
42fn main() {
43 let app = app::App::default();
44 app::set_visible_focus(false);
45 let mut win = window::Window::default().with_size(500, 400);
46 win.make_resizable(true);
47 win.set_color(enums::Color::Black);
48 let mut col = group::Flex::default_fill().column();
49 col.set_margin(20);
50 col.set_pad(10);
51
52 for i in 0..3 {
53 let label = format!("Button {}", i + 1);
54 let mut but = MyButton::new(500, 100);
55 but.set_label(&label);
56 but.set_callback(move |_| println!("{label}"));
57 }
58
59 col.end();
60 win.end();
61 win.show();
62 app.run().unwrap();
63}
More examples
12fn draw_gallery() {
13 let mut tab = Tabs::default_fill();
14
15 let mut grp1 = Flex::default_fill().with_label("Tab1\t\t").row();
16 let mut col = Flex::default().column();
17 grp1.fixed(&col, 160);
18 col.set_pad(10);
19 col.set_margin(10);
20 let _but1 = Button::default().with_label("Button");
21 let _but2 = RoundButton::default().with_label("Round");
22 let _but3 = CheckButton::default().with_label("Check");
23 let _but4 = LightButton::default().with_label("Light");
24 let mut but5 = MenuButton::default().with_label("Menu");
25 but5.add_choice("Hello|World|From|Rust");
26 let _but6 = ReturnButton::default().with_label("Return");
27 let mut chce = Choice::default();
28 chce.add_choice("Hello");
29 let _inp = Input::default();
30 let mut out = Output::default();
31 out.set_value("output");
32 col.end();
33 grp1.end();
34
35 let grp2 = Flex::default_fill().with_label("Tab2\t\t").row();
36 grp2.end();
37 tab.end();
38 tab.auto_layout();
39}
22fn main() {
23 let app = app::App::default();
24 let mut win = window::Window::default()
25 .with_size(1000, 800)
26 .with_label("Frames");
27 win.set_center_screen();
28
29 let mut col = group::Flex::default_fill().column();
30 col.set_margin(20);
31
32 let mut row = group::Flex::default();
33 col.fixed(&row, 75);
34 for i in 0..8 {
35 let _ = MyFrame::new(i);
36 }
37 row.end();
38 row.set_pad(10);
39
40 let mut row = group::Flex::default();
41 col.fixed(&row, 75);
42 for i in 8..17 {
43 let _ = MyFrame::new(i);
44 }
45 row.end();
46 row.set_pad(10);
47
48 let mut row = group::Flex::default();
49 col.fixed(&row, 75);
50 for i in 17..26 {
51 let _ = MyFrame::new(i);
52 }
53 row.end();
54 row.set_pad(10);
55
56 let mut row = group::Flex::default();
57 col.fixed(&row, 75);
58 for i in 26..35 {
59 let _ = MyFrame::new(i);
60 }
61 row.end();
62 row.set_pad(10);
63
64 let mut row = group::Flex::default();
65 col.fixed(&row, 75);
66 for i in 35..44 {
67 let _ = MyFrame::new(i);
68 }
69 row.end();
70 row.set_pad(10);
71
72 let mut row = group::Flex::default();
73 col.fixed(&row, 75);
74 for i in 44..53 {
75 let _ = MyFrame::new(i);
76 }
77 row.end();
78 row.set_pad(10);
79
80 col.end();
81 col.set_pad(30);
82
83 win.end();
84 win.show();
85 win.set_color(enums::Color::White);
86
87 app.run().unwrap();
88}
Sourcepub fn set_pad(&mut self, p: i32)
pub fn set_pad(&mut self, p: i32)
Set the padding
Examples found in repository?
42fn main() {
43 let app = app::App::default();
44 app::set_visible_focus(false);
45 let mut win = window::Window::default().with_size(500, 400);
46 win.make_resizable(true);
47 win.set_color(enums::Color::Black);
48 let mut col = group::Flex::default_fill().column();
49 col.set_margin(20);
50 col.set_pad(10);
51
52 for i in 0..3 {
53 let label = format!("Button {}", i + 1);
54 let mut but = MyButton::new(500, 100);
55 but.set_label(&label);
56 but.set_callback(move |_| println!("{label}"));
57 }
58
59 col.end();
60 win.end();
61 win.show();
62 app.run().unwrap();
63}
More examples
12fn draw_gallery() {
13 let mut tab = Tabs::default_fill();
14
15 let mut grp1 = Flex::default_fill().with_label("Tab1\t\t").row();
16 let mut col = Flex::default().column();
17 grp1.fixed(&col, 160);
18 col.set_pad(10);
19 col.set_margin(10);
20 let _but1 = Button::default().with_label("Button");
21 let _but2 = RoundButton::default().with_label("Round");
22 let _but3 = CheckButton::default().with_label("Check");
23 let _but4 = LightButton::default().with_label("Light");
24 let mut but5 = MenuButton::default().with_label("Menu");
25 but5.add_choice("Hello|World|From|Rust");
26 let _but6 = ReturnButton::default().with_label("Return");
27 let mut chce = Choice::default();
28 chce.add_choice("Hello");
29 let _inp = Input::default();
30 let mut out = Output::default();
31 out.set_value("output");
32 col.end();
33 grp1.end();
34
35 let grp2 = Flex::default_fill().with_label("Tab2\t\t").row();
36 grp2.end();
37 tab.end();
38 tab.auto_layout();
39}
9fn main() -> Result<(), Box<dyn std::error::Error>> {
10 let app = app::App::default();
11 let mut wind = Window::default().with_size(160, 200).with_label("Counter");
12 let mut flex = Flex::default_fill().column();
13 flex.set_margins(30, 40, 30, 40);
14 flex.set_pad(10);
15 let mut but_inc = Button::default().with_label("+");
16 let mut frame = Frame::default().with_label("0");
17 let mut but_dec = Button::default().with_label("-");
18 flex.end();
19 wind.end();
20 wind.show();
21
22 let (s, r) = app::channel::<Message>();
23
24 but_inc.emit(s, Message::Increment);
25 but_dec.emit(s, Message::Decrement);
26
27 while app.wait() {
28 let label: i32 = frame.label().unwrap().parse()?;
29
30 if let Some(msg) = r.recv() {
31 match msg {
32 Message::Increment => frame.set_label(&(label + 1).to_string()),
33 Message::Decrement => frame.set_label(&(label - 1).to_string()),
34 }
35 }
36 }
37 Ok(())
38}
246fn main() {
247 let a = app::App::default().with_scheme(app::Scheme::Oxy);
248 app::get_system_colors();
249
250 let mut buf = text::TextBuffer::default();
251 buf.set_tab_distance(4);
252
253 let state = State::new(buf.clone());
254 app::GlobalState::new(state);
255
256 let mut w = window::Window::default()
257 .with_size(WIDTH, HEIGHT)
258 .with_label("Ted");
259 w.set_xclass("ted");
260 {
261 let mut col = group::Flex::default_fill().column();
262 col.set_pad(0);
263 let mut m = menu::SysMenuBar::default();
264 init_menu(&mut m);
265 let mut ed = text::TextEditor::default().with_id("ed");
266 ed.set_buffer(buf);
267 ed.set_linenumber_width(40);
268 ed.set_text_font(Font::Courier);
269 ed.set_when(When::Changed);
270 ed.set_callback(editor_cb);
271 handle_drag_drop(&mut ed);
272 w.resizable(&col);
273 col.fixed(&m, 30);
274 col.end();
275 }
276 w.end();
277 w.show();
278 w.set_callback(win_cb);
279 a.run().unwrap();
280}
40fn main() -> Result<(), Box<dyn std::error::Error>> {
41 let app = app::App::default();
42 let counter = Counter::new(0);
43 let mut wind = Window::default().with_size(160, 200).with_label("Counter");
44 let mut flex = Flex::default_fill().column();
45 flex.set_margins(30, 40, 30, 40);
46 flex.set_pad(10);
47 let mut but_inc = Button::default().with_label("+");
48 let mut frame = Frame::default().with_label(&counter.value().to_string());
49 let mut but_dec = Button::default().with_label("-");
50 flex.end();
51 wind.end();
52 wind.show();
53
54 but_inc.set_callback({
55 let mut c = counter.clone();
56 move |_| c.increment()
57 });
58
59 but_dec.set_callback({
60 let mut c = counter.clone();
61 move |_| c.decrement()
62 });
63
64 frame.handle(move |f, ev| {
65 if ev == MyEvent::CHANGED.into() {
66 f.set_label(&counter.clone().value().to_string());
67 true
68 } else {
69 false
70 }
71 });
72
73 Ok(app.run()?)
74}
3fn main() {
4 let app = app::App::default();
5 // global theming
6 app::background(55, 55, 55); // background color.
7 // For input/output and text widgets, use app::background2
8 app::background2(0, 0, 0);
9 app::foreground(255, 255, 255); // labels
10 app::set_font_size(16);
11 app::set_frame_type(FrameType::UpBox, FrameType::RFlatBox);
12 app::set_frame_type(FrameType::DownBox, FrameType::RFlatBox);
13 app::set_frame_border_radius_max(15); // set the roundness of the RFlatBox
14 app::set_font(Font::Helvetica, Font::Times);
15 app::set_visible_focus(false);
16
17 // regular widget code
18 let mut win = window::Window::default().with_size(400, 300);
19 let mut flex = group::Flex::default_fill().column();
20 flex.set_margins(100, 60, 100, 60);
21 flex.set_pad(10);
22 let mut btn1 = button::Button::default().with_label("Increment");
23 btn1.set_color(Color::Red.darker());
24 btn1.set_selection_color(Color::Red.darker().darker());
25 let mut out = frame::Frame::default().with_label("0");
26 out.set_color(Color::Green.darker());
27 let mut btn2 = button::Button::default().with_label("Decrement");
28 btn2.set_color(Color::Red.darker());
29 btn2.set_selection_color(Color::Red.darker().darker());
30 flex.end();
31 win.end();
32 win.show();
33
34 app.run().unwrap();
35}
Sourcepub fn set_spacing(&mut self, p: i32)
pub fn set_spacing(&mut self, p: i32)
Set the padding
Examples found in repository?
17fn main() -> Result<(), Box<dyn std::error::Error>> {
18 let app = app::App::default();
19 let mut wind = Window::default().with_size(160, 200).with_label("Counter");
20 let mut col = Flex::default()
21 .with_size(120, 140)
22 .center_of(&wind)
23 .column();
24 col.set_spacing(10);
25 let mut but_inc = Button::default().with_label("+");
26 let mut frame = Frame::default().with_label("0");
27 let mut but_dec = Button::default().with_label("-");
28 col.end();
29 wind.end();
30 wind.show();
31
32 let mut msg_wind = Window::default().with_size(120, 100).with_label("Message");
33 let mut msgview = HelpView::default().with_size(120, 100);
34 msgview.set_align(Align::Center);
35 msg_wind.end();
36
37 let (s, r) = app::channel::<Message>();
38
39 but_inc.set_callback({
40 move |_| {
41 s.send(Message::Deactivate);
42 thread::spawn(move || {
43 thread::sleep(Duration::from_secs(1));
44 s.send(Message::Increment);
45 s.send(Message::Message("Incremented"));
46 s.send(Message::Activate);
47 });
48 }
49 });
50 but_dec.set_callback({
51 move |_| {
52 s.send(Message::Deactivate);
53 thread::spawn(move || {
54 thread::sleep(Duration::from_secs(1));
55 s.send(Message::Decrement);
56 s.send(Message::Message("Decremented"));
57 s.send(Message::Activate);
58 });
59 }
60 });
61
62 while app.wait() {
63 if let Some(msg) = r.recv() {
64 let label: i32 = frame.label().unwrap().parse()?;
65 match msg {
66 Message::Increment => frame.set_label(&(label + 1).to_string()),
67 Message::Decrement => frame.set_label(&(label - 1).to_string()),
68 Message::Activate => {
69 but_inc.activate();
70 but_dec.activate();
71 }
72 Message::Deactivate => {
73 but_inc.deactivate();
74 but_dec.deactivate();
75 }
76 Message::Message(s) => {
77 msgview.set_value(s);
78 msg_wind.show();
79 }
80 }
81 }
82 }
83 Ok(())
84}
Sourcepub fn set_margins(&mut self, left: i32, top: i32, right: i32, bottom: i32)
pub fn set_margins(&mut self, left: i32, top: i32, right: i32, bottom: i32)
Set the margins
Examples found in repository?
3fn main() {
4 let app = app::App::default();
5 let mut wind = Window::default().with_size(400, 300);
6 let mut col = Flex::default_fill().column();
7 col.set_margins(120, 80, 120, 80);
8 let mut frame = Frame::default();
9 let mut but = Button::default().with_label("Click me!");
10 col.fixed(&but, 40);
11 col.end();
12 wind.end();
13 wind.show();
14
15 but.set_callback(move |_| frame.set_label("Hello world"));
16
17 app.run().unwrap();
18}
More examples
9fn main() -> Result<(), Box<dyn std::error::Error>> {
10 let app = app::App::default();
11 let mut wind = Window::default().with_size(160, 200).with_label("Counter");
12 let mut flex = Flex::default_fill().column();
13 flex.set_margins(30, 40, 30, 40);
14 flex.set_pad(10);
15 let mut but_inc = Button::default().with_label("+");
16 let mut frame = Frame::default().with_label("0");
17 let mut but_dec = Button::default().with_label("-");
18 flex.end();
19 wind.end();
20 wind.show();
21
22 let (s, r) = app::channel::<Message>();
23
24 but_inc.emit(s, Message::Increment);
25 but_dec.emit(s, Message::Decrement);
26
27 while app.wait() {
28 let label: i32 = frame.label().unwrap().parse()?;
29
30 if let Some(msg) = r.recv() {
31 match msg {
32 Message::Increment => frame.set_label(&(label + 1).to_string()),
33 Message::Decrement => frame.set_label(&(label - 1).to_string()),
34 }
35 }
36 }
37 Ok(())
38}
40fn main() -> Result<(), Box<dyn std::error::Error>> {
41 let app = app::App::default();
42 let counter = Counter::new(0);
43 let mut wind = Window::default().with_size(160, 200).with_label("Counter");
44 let mut flex = Flex::default_fill().column();
45 flex.set_margins(30, 40, 30, 40);
46 flex.set_pad(10);
47 let mut but_inc = Button::default().with_label("+");
48 let mut frame = Frame::default().with_label(&counter.value().to_string());
49 let mut but_dec = Button::default().with_label("-");
50 flex.end();
51 wind.end();
52 wind.show();
53
54 but_inc.set_callback({
55 let mut c = counter.clone();
56 move |_| c.increment()
57 });
58
59 but_dec.set_callback({
60 let mut c = counter.clone();
61 move |_| c.decrement()
62 });
63
64 frame.handle(move |f, ev| {
65 if ev == MyEvent::CHANGED.into() {
66 f.set_label(&counter.clone().value().to_string());
67 true
68 } else {
69 false
70 }
71 });
72
73 Ok(app.run()?)
74}
3fn main() {
4 let app = app::App::default();
5 // global theming
6 app::background(55, 55, 55); // background color.
7 // For input/output and text widgets, use app::background2
8 app::background2(0, 0, 0);
9 app::foreground(255, 255, 255); // labels
10 app::set_font_size(16);
11 app::set_frame_type(FrameType::UpBox, FrameType::RFlatBox);
12 app::set_frame_type(FrameType::DownBox, FrameType::RFlatBox);
13 app::set_frame_border_radius_max(15); // set the roundness of the RFlatBox
14 app::set_font(Font::Helvetica, Font::Times);
15 app::set_visible_focus(false);
16
17 // regular widget code
18 let mut win = window::Window::default().with_size(400, 300);
19 let mut flex = group::Flex::default_fill().column();
20 flex.set_margins(100, 60, 100, 60);
21 flex.set_pad(10);
22 let mut btn1 = button::Button::default().with_label("Increment");
23 btn1.set_color(Color::Red.darker());
24 btn1.set_selection_color(Color::Red.darker().darker());
25 let mut out = frame::Frame::default().with_label("0");
26 out.set_color(Color::Green.darker());
27 let mut btn2 = button::Button::default().with_label("Decrement");
28 btn2.set_color(Color::Red.darker());
29 btn2.set_selection_color(Color::Red.darker().darker());
30 flex.end();
31 win.end();
32 win.show();
33
34 app.run().unwrap();
35}
12fn main() {
13 let app = app::App::default().with_scheme(app::Scheme::Gtk);
14 app::background(0x62, 0x00, 0xee);
15 app::set_visible_focus(false);
16
17 let count = Rc::new(RefCell::new(0));
18
19 let mut wind = Window::default().with_size(160, 200).with_label("Counter");
20 let mut flex = Flex::default_fill().column();
21 flex.set_margins(30, 40, 30, 40);
22 flex.set_pad(10);
23 let mut but_inc = Button::default().with_label("+");
24 let mut frame = Frame::default().with_label(&count.borrow().to_string());
25 let mut but_dec = Button::default().with_label("-");
26 flex.end();
27 // wind.make_resizable(true);
28 wind.end();
29 wind.show();
30
31 but_inc.set_callback({
32 let count = count.clone();
33 let mut frame = frame.clone();
34 move |_| {
35 *count.borrow_mut() += 1;
36 frame.set_label(&count.borrow().to_string());
37 }
38 });
39
40 but_dec.set_callback(move |_| {
41 *count.borrow_mut() -= 1;
42 frame.set_label(&count.borrow().to_string());
43 });
44
45 // Theming
46 wind.set_color(Color::White);
47 but_inc.set_color(Color::from_u32(0x304FFE));
48 but_inc.set_selection_color(Color::Green);
49 but_inc.set_label_size(20);
50 but_inc.set_frame(FrameType::FlatBox);
51 but_inc.set_label_color(Color::White);
52 but_dec.set_color(Color::from_u32(0x2962FF));
53 but_dec.set_selection_color(Color::Red);
54 but_dec.set_frame(FrameType::FlatBox);
55 but_dec.set_label_size(20);
56 but_dec.set_label_color(Color::White);
57 // End theming
58
59 app.run().unwrap();
60}
Trait Implementations§
Source§impl GroupExt for Flex
impl GroupExt for Flex
Source§fn find<W: WidgetExt>(&self, widget: &W) -> i32
fn find<W: WidgetExt>(&self, widget: &W) -> i32
Source§fn insert<W: WidgetExt>(&mut self, widget: &W, index: i32)
fn insert<W: WidgetExt>(&mut self, widget: &W, index: i32)
Source§fn remove<W: WidgetExt>(&mut self, widget: &W)
fn remove<W: WidgetExt>(&mut self, widget: &W)
Source§fn remove_by_index(&mut self, idx: i32)
fn remove_by_index(&mut self, idx: i32)
Source§fn resizable<W: WidgetExt>(&self, widget: &W)
fn resizable<W: WidgetExt>(&self, widget: &W)
Source§fn make_resizable(&mut self, val: bool)
fn make_resizable(&mut self, val: bool)
Source§fn add_resizable<W: WidgetExt>(&mut self, widget: &W)
fn add_resizable<W: WidgetExt>(&mut self, widget: &W)
Source§fn set_clip_children(&mut self, flag: bool)
fn set_clip_children(&mut self, flag: bool)
Source§fn clip_children(&self) -> bool
fn clip_children(&self) -> bool
clip_children
is setSource§fn draw_child<W: WidgetExt>(&self, w: &mut W)
fn draw_child<W: WidgetExt>(&self, w: &mut W)
WidgetBase::draw
methodSource§fn update_child<W: WidgetExt>(&self, w: &mut W)
fn update_child<W: WidgetExt>(&self, w: &mut W)
WidgetBase::draw
methodSource§fn draw_outside_label<W: WidgetExt>(&self, w: &mut W)
fn draw_outside_label<W: WidgetExt>(&self, w: &mut W)
WidgetBase::draw
methodSource§fn draw_children(&mut self)
fn draw_children(&mut self)
WidgetBase::draw
methodSource§fn init_sizes(&mut self)
fn init_sizes(&mut self)
Source§impl IntoIterator for Flex
impl IntoIterator for Flex
Source§impl WidgetBase for Flex
impl WidgetBase for Flex
Source§unsafe fn from_widget_ptr(ptr: *mut Fl_Widget) -> Self
unsafe fn from_widget_ptr(ptr: *mut Fl_Widget) -> Self
Source§unsafe fn from_widget<W: WidgetExt>(w: W) -> Self
unsafe fn from_widget<W: WidgetExt>(w: W) -> Self
Source§fn handle<F: FnMut(&mut Self, Event) -> bool + 'static>(&mut self, cb: F)
fn handle<F: FnMut(&mut Self, Event) -> bool + 'static>(&mut self, cb: F)
Fl_Widget::handle(int)
.
Handled or ignored events should return true, unhandled events should return false.
takes the widget as a closure argument.
The ability to handle an event might depend on handling other events, as explained hereSource§fn draw<F: FnMut(&mut Self) + 'static>(&mut self, cb: F)
fn draw<F: FnMut(&mut Self) + 'static>(&mut self, cb: F)
WidgetBase::draw
actually calls drawing functionsSource§fn resize_callback<F: FnMut(&mut Self, i32, i32, i32, i32) + 'static>(
&mut self,
cb: F,
)
fn resize_callback<F: FnMut(&mut Self, i32, i32, i32, i32) + 'static>( &mut self, cb: F, )
Source§unsafe fn assume_derived(&mut self)
unsafe fn assume_derived(&mut self)
Source§impl WidgetExt for Flex
impl WidgetExt for Flex
Source§fn set_label(&mut self, title: &str)
fn set_label(&mut self, title: &str)
@
sign.
and for the associated formatting.Source§fn unset_label(&mut self)
fn unset_label(&mut self)
Source§fn measure_label(&self) -> (i32, i32)
fn measure_label(&self) -> (i32, i32)
Source§fn as_widget_ptr(&self) -> *mut Fl_Widget
fn as_widget_ptr(&self) -> *mut Fl_Widget
Fl_Widget
, for internal useSource§fn deactivate(&mut self)
fn deactivate(&mut self)
Source§fn redraw_label(&mut self)
fn redraw_label(&mut self)
Source§fn resize(&mut self, x: i32, y: i32, width: i32, height: i32)
fn resize(&mut self, x: i32, y: i32, width: i32, height: i32)
Source§fn widget_resize(&mut self, x: i32, y: i32, width: i32, height: i32)
fn widget_resize(&mut self, x: i32, y: i32, width: i32, height: i32)
Source§fn set_tooltip(&mut self, txt: &str)
fn set_tooltip(&mut self, txt: &str)
Source§fn label_color(&self) -> Color
fn label_color(&self) -> Color
Source§fn set_label_color(&mut self, color: Color)
fn set_label_color(&mut self, color: Color)
Source§fn label_font(&self) -> Font
fn label_font(&self) -> Font
Source§fn set_label_font(&mut self, font: Font)
fn set_label_font(&mut self, font: Font)
Source§fn label_size(&self) -> i32
fn label_size(&self) -> i32
Source§fn set_label_size(&mut self, sz: i32)
fn set_label_size(&mut self, sz: i32)
Source§fn label_type(&self) -> LabelType
fn label_type(&self) -> LabelType
Source§fn set_label_type(&mut self, typ: LabelType)
fn set_label_type(&mut self, typ: LabelType)
Source§fn set_changed(&mut self)
fn set_changed(&mut self)
Source§fn clear_changed(&mut self)
fn clear_changed(&mut self)
Source§fn set_when(&mut self, trigger: When)
fn set_when(&mut self, trigger: When)
when()
Source§fn selection_color(&self) -> Color
fn selection_color(&self) -> Color
Source§fn set_selection_color(&mut self, color: Color)
fn set_selection_color(&mut self, color: Color)
Source§fn do_callback(&mut self)
fn do_callback(&mut self)
Source§fn top_window(&self) -> Option<Box<dyn WindowExt>>
fn top_window(&self) -> Option<Box<dyn WindowExt>>
Source§fn takes_events(&self) -> bool
fn takes_events(&self) -> bool
Source§fn set_visible_focus(&mut self)
fn set_visible_focus(&mut self)
Source§fn clear_visible_focus(&mut self)
fn clear_visible_focus(&mut self)
Source§fn visible_focus(&mut self, v: bool)
fn visible_focus(&mut self, v: bool)
Source§fn has_visible_focus(&self) -> bool
fn has_visible_focus(&self) -> bool
Source§fn was_deleted(&self) -> bool
fn was_deleted(&self) -> bool
Source§fn set_damage(&mut self, flag: bool)
fn set_damage(&mut self, flag: bool)
Source§fn damage_type(&self) -> Damage
fn damage_type(&self) -> Damage
Source§fn set_damage_type(&mut self, mask: Damage)
fn set_damage_type(&mut self, mask: Damage)
Source§fn set_damage_area(&mut self, mask: Damage, x: i32, y: i32, w: i32, h: i32)
fn set_damage_area(&mut self, mask: Damage, x: i32, y: i32, w: i32, h: i32)
Source§fn clear_damage(&mut self)
fn clear_damage(&mut self)
Source§fn as_window(&self) -> Option<Box<dyn WindowExt>>
fn as_window(&self) -> Option<Box<dyn WindowExt>>
Source§fn as_group(&self) -> Option<Group>
fn as_group(&self) -> Option<Group>
Source§fn inside<W: WidgetExt>(&self, wid: &W) -> bool
fn inside<W: WidgetExt>(&self, wid: &W) -> bool
Source§fn get_type<T: WidgetType>(&self) -> T
fn get_type<T: WidgetType>(&self) -> T
Source§fn set_type<T: WidgetType>(&mut self, typ: T)
fn set_type<T: WidgetType>(&mut self, typ: T)
Source§fn set_image_scaled<I: ImageExt>(&mut self, image: Option<I>)
fn set_image_scaled<I: ImageExt>(&mut self, image: Option<I>)
Source§fn set_deimage<I: ImageExt>(&mut self, image: Option<I>)
fn set_deimage<I: ImageExt>(&mut self, image: Option<I>)
Source§fn set_deimage_scaled<I: ImageExt>(&mut self, image: Option<I>)
fn set_deimage_scaled<I: ImageExt>(&mut self, image: Option<I>)
Source§fn deimage(&self) -> Option<Box<dyn ImageExt>>
fn deimage(&self) -> Option<Box<dyn ImageExt>>
Source§fn set_callback<F: FnMut(&mut Self) + 'static>(&mut self, cb: F)
fn set_callback<F: FnMut(&mut Self) + 'static>(&mut self, cb: F)
Source§fn emit<T: 'static + Clone + Send + Sync>(&mut self, sender: Sender<T>, msg: T)
fn emit<T: 'static + Clone + Send + Sync>(&mut self, sender: Sender<T>, msg: T)
Source§unsafe fn as_widget<W: WidgetBase>(&self) -> W
unsafe fn as_widget<W: WidgetBase>(&self) -> W
WidgetExt
to some widget type Read moreSource§fn visible_r(&self) -> bool
fn visible_r(&self) -> bool
Source§fn is_same<W: WidgetExt>(&self, other: &W) -> bool
fn is_same<W: WidgetExt>(&self, other: &W) -> bool
Source§fn active_r(&self) -> bool
fn active_r(&self) -> bool
Source§fn handle_event(&mut self, event: Event) -> bool
fn handle_event(&mut self, event: Event) -> bool
Source§fn is_derived(&self) -> bool
fn is_derived(&self) -> bool
Source§fn as_base_widget(&self) -> Widgetwhere
Self: Sized,
fn as_base_widget(&self) -> Widgetwhere
Self: Sized,
WidgetExt
to a WidgetSource§impl WidgetProps for Flex
impl WidgetProps for Flex
Source§fn with_label(self, title: &str) -> Self
fn with_label(self, title: &str) -> Self
Initialize with a label
Source§fn with_align(self, align: Align) -> Self
fn with_align(self, align: Align) -> Self
Initialize with alignment
Source§fn with_type<T: WidgetType>(self, typ: T) -> Self
fn with_type<T: WidgetType>(self, typ: T) -> Self
Initialize with type
Source§fn below_of<W: WidgetExt>(self, wid: &W, padding: i32) -> Self
fn below_of<W: WidgetExt>(self, wid: &W, padding: i32) -> Self
Initialize at bottom of another widget
Source§fn above_of<W: WidgetExt>(self, wid: &W, padding: i32) -> Self
fn above_of<W: WidgetExt>(self, wid: &W, padding: i32) -> Self
Initialize above of another widget
Source§fn right_of<W: WidgetExt>(self, wid: &W, padding: i32) -> Self
fn right_of<W: WidgetExt>(self, wid: &W, padding: i32) -> Self
Initialize right of another widget
Source§fn left_of<W: WidgetExt>(self, wid: &W, padding: i32) -> Self
fn left_of<W: WidgetExt>(self, wid: &W, padding: i32) -> Self
Initialize left of another widget
Source§fn center_x<W: WidgetExt>(self, w: &W) -> Self
fn center_x<W: WidgetExt>(self, w: &W) -> Self
Initialize center of another widget on the x axis
Source§fn center_y<W: WidgetExt>(self, w: &W) -> Self
fn center_y<W: WidgetExt>(self, w: &W) -> Self
Initialize center of another widget on the y axis
Source§fn center_of_parent(self) -> Self
fn center_of_parent(self) -> Self
Initialize center of parent
Source§fn size_of_parent(self) -> Self
fn size_of_parent(self) -> Self
Initialize to the size of the parent
impl Eq for Flex
impl Send for Flex
single-threaded
only.impl Sync for Flex
single-threaded
only.