refactor: better usage of menu::Item
This commit is contained in:
parent
ffa67981a8
commit
1fe79b727b
2 changed files with 64 additions and 97 deletions
|
|
@ -275,111 +275,75 @@ impl cosmic::Application for App {
|
|||
],
|
||||
),
|
||||
),
|
||||
Tree::with_children(Element::from(button::text("hi 4")), {
|
||||
let mut root_items = vec![menu::Tree::with_children(
|
||||
menu::root("hi 41 extra root"),
|
||||
menu::items(
|
||||
&self.keybinds,
|
||||
vec![menu::Item::Button("hi 3", None, Action::Hi)],
|
||||
),
|
||||
)];
|
||||
let mut items = menu::items(
|
||||
Tree::with_children(
|
||||
Element::from(button::text("hi 4")),
|
||||
menu::items(
|
||||
&self.keybinds,
|
||||
vec![
|
||||
menu::Item::Folder(
|
||||
"hi 41 extra root",
|
||||
vec![menu::Item::Button("hi 3", None, Action::Hi)],
|
||||
),
|
||||
menu::Item::Button("hi 42", None, Action::Hi),
|
||||
menu::Item::Button("hi 43", None, Action::Hi),
|
||||
menu::Item::Button("hi 44", None, Action::Hi),
|
||||
menu::Item::Button("hi 45", None, Action::Hi),
|
||||
menu::Item::Button("hi 46", None, Action::Hi),
|
||||
],
|
||||
);
|
||||
root_items.append(&mut items);
|
||||
root_items
|
||||
}),
|
||||
),
|
||||
),
|
||||
])
|
||||
.into()]
|
||||
}
|
||||
#[cfg(feature = "wayland")]
|
||||
{
|
||||
vec![self.core.responsive_menu_bar(
|
||||
&self.keybinds,
|
||||
MENU_ID.clone(),
|
||||
vec![
|
||||
(
|
||||
menu::root("hiiiiiiiiiiiiiiiiiii 1"),
|
||||
menu::items(
|
||||
&self.keybinds,
|
||||
vec![menu::Item::Button("hi", None, Action::Hi)],
|
||||
),
|
||||
"hiiiiiiiiiiiiiiiiiii 1".into(),
|
||||
vec![menu::Item::Button("hi 1".into(), None, Action::Hi)],
|
||||
),
|
||||
(
|
||||
menu::root("hiiiiiiiiiiiiiiiiiiiii 2"),
|
||||
menu::items(
|
||||
&self.keybinds,
|
||||
vec![
|
||||
menu::Item::Button("hi 21", None, Action::Hi),
|
||||
menu::Item::Button("hi 22", None, Action::Hi),
|
||||
],
|
||||
),
|
||||
"hiiiiiiiiiiiiiiiiiii 2".into(),
|
||||
vec![
|
||||
menu::Item::Button("hi 2".into(), None, Action::Hi),
|
||||
menu::Item::Button("hi 22".into(), None, Action::Hi),
|
||||
],
|
||||
),
|
||||
(
|
||||
menu::root("hi 3"),
|
||||
menu::items(
|
||||
&self.keybinds,
|
||||
vec![menu::Item::Button("hi 33", None, Action::Hi)],
|
||||
),
|
||||
"hiiiiiiiiiiiiiiiiiii 3".into(),
|
||||
vec![
|
||||
menu::Item::Button("hi 3".into(), None, Action::Hi),
|
||||
menu::Item::Button("hi 33".into(), None, Action::Hi),
|
||||
menu::Item::Button("hi 333".into(), None, Action::Hi),
|
||||
],
|
||||
),
|
||||
(menu::root("hi 4"), {
|
||||
let mut root_items = vec![menu::Tree::with_children(
|
||||
menu_button(vec![text("hi 41 extra root").into()])
|
||||
.on_press(Message::Hi),
|
||||
vec![menu::Tree::with_children(
|
||||
menu_button(vec![text("hi 41 extra 2").into()])
|
||||
.on_press(Message::Hi),
|
||||
{
|
||||
let mut root_items = vec![menu::Tree::with_children(
|
||||
menu_button(vec![text("hi 41 extra root").into()])
|
||||
.on_press(Message::Hi),
|
||||
vec![menu::Tree::with_children(
|
||||
menu_button(vec![text("hi 41 extra 2").into()])
|
||||
.on_press(Message::Hi),
|
||||
menu::items(
|
||||
&self.keybinds,
|
||||
vec![menu::Item::Button(
|
||||
"hi 41 extra root item",
|
||||
None,
|
||||
Action::Hi,
|
||||
)],
|
||||
),
|
||||
)],
|
||||
)];
|
||||
let mut items = menu::items(
|
||||
&self.keybinds,
|
||||
(
|
||||
"hiiiiiiiiiiiiiiiiiii 4".into(),
|
||||
vec![
|
||||
menu::Item::Button("hi 4".into(), None, Action::Hi),
|
||||
menu::Item::Button("hi 44".into(), None, Action::Hi),
|
||||
menu::Item::Button("hi 444".into(), None, Action::Hi),
|
||||
menu::Item::Folder(
|
||||
"nest 4".into(),
|
||||
vec![
|
||||
menu::Item::Button("hi 4".into(), None, Action::Hi),
|
||||
menu::Item::Button("hi 44".into(), None, Action::Hi),
|
||||
menu::Item::Button("hi 444".into(), None, Action::Hi),
|
||||
menu::Item::Folder(
|
||||
"nest 2 4".into(),
|
||||
vec![
|
||||
menu::Item::Button("hi 42", None, Action::Hi),
|
||||
menu::Item::Button("hi 43", None, Action::Hi),
|
||||
menu::Item::Button("hi 44", None, Action::Hi),
|
||||
menu::Item::Button("hi 45", None, Action::Hi),
|
||||
menu::Item::Button("hi 46", None, Action::Hi),
|
||||
menu::Item::Button("hi 4".into(), None, Action::Hi),
|
||||
menu::Item::Button("hi 44".into(), None, Action::Hi),
|
||||
menu::Item::Button("hi 444".into(), None, Action::Hi),
|
||||
],
|
||||
);
|
||||
root_items.append(&mut items);
|
||||
root_items
|
||||
},
|
||||
)],
|
||||
)];
|
||||
let mut items = menu::items(
|
||||
&self.keybinds,
|
||||
vec![
|
||||
menu::Item::Button("hi 42", None, Action::Hi),
|
||||
menu::Item::Button("hi 43", None, Action::Hi),
|
||||
menu::Item::Button("hi 44", None, Action::Hi),
|
||||
menu::Item::Button("hi 45", None, Action::Hi),
|
||||
menu::Item::Button("hi 46", None, Action::Hi),
|
||||
],
|
||||
);
|
||||
root_items.append(&mut items);
|
||||
root_items
|
||||
}),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
)]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -398,14 +398,18 @@ impl Core {
|
|||
+ From<crate::surface_message::SurfaceMessage>
|
||||
+ crate::surface_message::SurfaceMessageHandler
|
||||
+ 'static,
|
||||
A: menu::Action<Message = Message>,
|
||||
>(
|
||||
&self,
|
||||
key_binds: &HashMap<menu::KeyBind, A>,
|
||||
id: crate::widget::Id,
|
||||
trees: Vec<(
|
||||
crate::widget::Button<'a, Message>,
|
||||
Vec<impl Into<Tree<'a, Message>>>,
|
||||
std::borrow::Cow<'static, str>,
|
||||
Vec<menu::Item<A, std::borrow::Cow<'static, str>>>,
|
||||
)>,
|
||||
) -> crate::Element<'a, Message> {
|
||||
use std::borrow::Cow;
|
||||
|
||||
use iced::Length;
|
||||
|
||||
use crate::widget::id_container;
|
||||
|
|
@ -421,7 +425,12 @@ impl Core {
|
|||
menu::bar(
|
||||
trees
|
||||
.into_iter()
|
||||
.map(|mt| menu::Tree::<_>::with_children(mt.0, mt.1))
|
||||
.map(|mt| {
|
||||
menu::Tree::<_>::with_children(
|
||||
menu::root(mt.0),
|
||||
menu::items(&key_binds, mt.1),
|
||||
)
|
||||
})
|
||||
.collect(),
|
||||
),
|
||||
crate::widget::Id::new(format!("menu_bar_expanded_{id}")),
|
||||
|
|
@ -438,19 +447,13 @@ impl Core {
|
|||
.padding([4, 12])
|
||||
.class(crate::theme::Button::MenuRoot),
|
||||
),
|
||||
trees
|
||||
.into_iter()
|
||||
.map(|mt| {
|
||||
menu::Tree::<_>::with_children(
|
||||
mt.0.width(Length::Fill)
|
||||
.height(Length::Fixed(36.0))
|
||||
.padding([4, 16])
|
||||
.class(crate::theme::Button::MenuItem)
|
||||
.force_enabled(true),
|
||||
mt.1,
|
||||
)
|
||||
})
|
||||
.collect(),
|
||||
menu::items(
|
||||
&key_binds,
|
||||
trees
|
||||
.into_iter()
|
||||
.map(|mt| menu::Item::Folder(mt.0, mt.1))
|
||||
.collect(),
|
||||
),
|
||||
)]),
|
||||
crate::widget::Id::new(format!("menu_bar_collapsed_{id}")),
|
||||
),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue