diff --git a/examples/application/src/main.rs b/examples/application/src/main.rs index 3908cabd..176be39f 100644 --- a/examples/application/src/main.rs +++ b/examples/application/src/main.rs @@ -237,7 +237,7 @@ impl cosmic::Application for App { fn header_start(&self) -> Vec> { use cosmic::widget::menu::Tree; - vec![cosmic::widget::responsive_menu_bar( + vec![cosmic::widget::responsive_menu_bar().into_element( self.core(), &self.keybinds, MENU_ID.clone(), @@ -246,42 +246,42 @@ impl cosmic::Application for App { ( "hi 1".into(), vec![ - menu::Item::Button("hi 12".into(), None, Action::Hi), - menu::Item::Button("hi 13".into(), None, Action::Hi2), + menu::Item::Button("hi 12", None, Action::Hi), + menu::Item::Button("hi 13", None, Action::Hi2), ], ), ( "hi 2".into(), vec![ - menu::Item::Button("hi 21".into(), None, Action::Hi), - menu::Item::Button("hi 22".into(), None, Action::Hi2), + menu::Item::Button("hi 21", None, Action::Hi), + menu::Item::Button("hi 22", None, Action::Hi2), ], ), ( "hi 3".into(), vec![ - menu::Item::Button("hi 33".into(), None, Action::Hi), - menu::Item::Button("hi 333".into(), None, Action::Hi2), - menu::Item::Button("hi 3333".into(), None, Action::Hi3), + menu::Item::Button("hi 33", None, Action::Hi), + menu::Item::Button("hi 333", None, Action::Hi2), + menu::Item::Button("hi 3333", None, Action::Hi3), ], ), ( "hiiiiiiiiiiiiiiiiiii 4".into(), vec![ - menu::Item::Button("hi 4".into(), None, Action::Hi), - menu::Item::Button("hi 44".into(), None, Action::Hi2), - menu::Item::Button("hi 444".into(), None, Action::Hi3), + menu::Item::Button("hi 4", None, Action::Hi), + menu::Item::Button("hi 44", None, Action::Hi2), + menu::Item::Button("hi 444", None, Action::Hi3), menu::Item::Folder( "nest 4".into(), vec![ - menu::Item::Button("hi 41".into(), None, Action::Hi), - menu::Item::Button("hi 442".into(), None, Action::Hi2), - menu::Item::Button("hi 4443".into(), None, Action::Hi3), + menu::Item::Button("hi 41", None, Action::Hi), + menu::Item::Button("hi 442", None, Action::Hi2), + menu::Item::Button("hi 4443", None, Action::Hi3), menu::Item::Folder( "nest 2 4".into(), vec![ - menu::Item::Button("hi 443".into(), None, Action::Hi2), - menu::Item::Button("hi 4444".into(), None, Action::Hi), + menu::Item::Button("hi 443", None, Action::Hi2), + menu::Item::Button("hi 4444", None, Action::Hi), ], ), ], diff --git a/src/widget/responsive_menu_bar.rs b/src/widget/responsive_menu_bar.rs index e5416151..307395a4 100644 --- a/src/widget/responsive_menu_bar.rs +++ b/src/widget/responsive_menu_bar.rs @@ -56,15 +56,15 @@ impl ResponsiveMenuBar { /// Will panic if the menu bar collapses without tracking the size pub fn into_element< 'a, - Message: Clone + 'static, - A: menu::Action, + Message: std::fmt::Debug + Clone + 'static, + A: menu::Action + Clone, S: Into> + 'static, >( self, core: &Core, key_binds: &HashMap, id: crate::widget::Id, - action_message: impl Fn(crate::surface::Action) -> Message + 'static, + action_message: impl Fn(crate::surface::Action) -> Message + Clone + 'static, trees: Vec<(S, Vec>)>, ) -> Element<'a, Message> { use crate::widget::id_container; @@ -81,17 +81,14 @@ impl ResponsiveMenuBar { menu::bar( trees .into_iter() - .map( - |mt: ( - std::borrow::Cow<'_, str>, - Vec>>, - )| { - menu::Tree::<_>::with_children( + .map(|mt: (S, Vec>)| { + menu::Tree::<_>::with_children( + crate::widget::RcElementWrapper::new(Element::from( menu::root(mt.0), - menu::items(key_binds, mt.1.into()), - ) - }, - ) + )), + menu::items(key_binds, mt.1.into()), + ) + }) .collect(), ) .item_width(self.item_width)