1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
extern crate tuix;
use tuix::*;
static THEME: &'static str = include_str!("themes/menus_theme.css");
fn main() {
let window_description = WindowDescription::new().with_title("Menus");
// Create the app
let app = Application::new(window_description, |state, window| {
state.add_theme(THEME);
let menu_bar = MenuBar::new().build(state, window.entity(), |builder| {
builder.set_layout_type(LayoutType::Row)
});
let menu1 = Menu::new("File").build(state, menu_bar, |builder| {
builder
.set_width(Pixels(100.0))
.set_height(Pixels(30.0))
.set_child_space(Stretch(1.0))
.class("menu")
});
Button::with_label("Item 1").build(state, menu1, |builder| builder.class("item"));
Button::with_label("Item 2").build(state, menu1, |builder| builder.class("item"));
Button::with_label("Item 3")
.on_press(|widget, state, button|{
button.emit(state, WindowEvent::WindowClose);
})
.build(state, menu1, |builder| builder.class("item"));
Button::with_label("Item 4").build(state, menu1, |builder| builder.class("item"));
/*
let menu1 = Menu::new().build(state, menu_bar, |builder| {
builder
.set_width(Pixels(100.0))
.set_height(Pixels(30.0))
.set_child_space(Stretch(1.0))
.class("menu")
});
Button::with_label("Item 1").build(state, menu1, |builder| builder.class("item"));
Button::with_label("Item 2").build(state, menu1, |builder| builder.class("item"));
Button::with_label("Item 3")
.on_press(|widget, state, button|{
button.emit(state, WindowEvent::WindowClose);
})
.build(state, menu1, |builder| builder.class("item"));
Button::with_label("Item 4").build(state, menu1, |builder| builder.class("item"));
*/
// // Button::new().build2(state, menu1, |builder| builder.class("spacer2"));
// Button::with_label("SubItem 1").build(state, menu2, |builder| builder.class("item"));
// Button::with_label("SubItem 2").build(state, menu2, |builder| builder.class("item"));
// Button::with_label("SubItem 3")
// .on_press(Event::new(WindowEvent::WindowClose))
// .build(state, menu2, |builder| builder.class("item"));
// Button::new().build(state, menu1, |builder| builder.class("spacer2"));
// let menu3 = Menu::new("SubSubMenu", MenuPosition::Right).build(state, menu2, |builder| {
// builder.class("item").class("submenu")
// });
// Button::with_label("SubSubItem 1").build(state, menu3, |builder| builder.class("item"));
// Button::with_label("SubSubItem 2").build(state, menu3, |builder| builder.class("item"));
// Button::with_label("SubSubItem 3")
// .on_press(Event::new(WindowEvent::WindowClose))
// .build(state, menu3, |builder| builder.class("item"));
// let button = Button::with_label("Right Click Me").build(state, window, |builder| {
// builder
// .set_left(Units::Pixels(100.0))
// .set_top(Units::Pixels(100.0))
// .set_width(Units::Pixels(150.0))
// .set_height(Units::Pixels(30.0))
// .set_background_color(Color::green())
// });
// let (_container, menu) = ContextMenu::new().build(state, button, |builder| {
// builder
// .set_width(Units::Percentage(1.0))
// .set_height(Units::Percentage(1.0))
// });
// menu.set_width(state, Units::Pixels(100.0));
// Button::with_label("Option 1").build(state, menu, |builder| {
// builder
// .set_height(Units::Pixels(30.0))
// .set_background_color(Color::rgb(50, 50, 50))
// });
// Button::with_label("Option 2").build(state, menu, |builder| {
// builder
// .set_height(Units::Pixels(30.0))
// .set_background_color(Color::rgb(50, 50, 50))
// });
// Button::with_label("Option 3").build(state, menu, |builder| {
// builder
// .set_height(Units::Pixels(30.0))
// .set_background_color(Color::rgb(50, 50, 50))
// });
});
app.run();
}