This commit is contained in:
Ashley Wulber 2025-05-29 10:32:13 -04:00
parent a372ce800f
commit 89700a2ed5
No known key found for this signature in database
GPG key ID: 5216D4F46A90A820
2 changed files with 26 additions and 29 deletions

View file

@ -237,7 +237,7 @@ impl cosmic::Application for App {
fn header_start(&self) -> Vec<Element<Self::Message>> { fn header_start(&self) -> Vec<Element<Self::Message>> {
use cosmic::widget::menu::Tree; use cosmic::widget::menu::Tree;
vec![cosmic::widget::responsive_menu_bar( vec![cosmic::widget::responsive_menu_bar().into_element(
self.core(), self.core(),
&self.keybinds, &self.keybinds,
MENU_ID.clone(), MENU_ID.clone(),
@ -246,42 +246,42 @@ impl cosmic::Application for App {
( (
"hi 1".into(), "hi 1".into(),
vec![ vec![
menu::Item::Button("hi 12".into(), None, Action::Hi), menu::Item::Button("hi 12", None, Action::Hi),
menu::Item::Button("hi 13".into(), None, Action::Hi2), menu::Item::Button("hi 13", None, Action::Hi2),
], ],
), ),
( (
"hi 2".into(), "hi 2".into(),
vec![ vec![
menu::Item::Button("hi 21".into(), None, Action::Hi), menu::Item::Button("hi 21", None, Action::Hi),
menu::Item::Button("hi 22".into(), None, Action::Hi2), menu::Item::Button("hi 22", None, Action::Hi2),
], ],
), ),
( (
"hi 3".into(), "hi 3".into(),
vec![ vec![
menu::Item::Button("hi 33".into(), None, Action::Hi), menu::Item::Button("hi 33", None, Action::Hi),
menu::Item::Button("hi 333".into(), None, Action::Hi2), menu::Item::Button("hi 333", None, Action::Hi2),
menu::Item::Button("hi 3333".into(), None, Action::Hi3), menu::Item::Button("hi 3333", None, Action::Hi3),
], ],
), ),
( (
"hiiiiiiiiiiiiiiiiiii 4".into(), "hiiiiiiiiiiiiiiiiiii 4".into(),
vec![ vec![
menu::Item::Button("hi 4".into(), None, Action::Hi), menu::Item::Button("hi 4", None, Action::Hi),
menu::Item::Button("hi 44".into(), None, Action::Hi2), menu::Item::Button("hi 44", None, Action::Hi2),
menu::Item::Button("hi 444".into(), None, Action::Hi3), menu::Item::Button("hi 444", None, Action::Hi3),
menu::Item::Folder( menu::Item::Folder(
"nest 4".into(), "nest 4".into(),
vec![ vec![
menu::Item::Button("hi 41".into(), None, Action::Hi), menu::Item::Button("hi 41", None, Action::Hi),
menu::Item::Button("hi 442".into(), None, Action::Hi2), menu::Item::Button("hi 442", None, Action::Hi2),
menu::Item::Button("hi 4443".into(), None, Action::Hi3), menu::Item::Button("hi 4443", None, Action::Hi3),
menu::Item::Folder( menu::Item::Folder(
"nest 2 4".into(), "nest 2 4".into(),
vec![ vec![
menu::Item::Button("hi 443".into(), None, Action::Hi2), menu::Item::Button("hi 443", None, Action::Hi2),
menu::Item::Button("hi 4444".into(), None, Action::Hi), menu::Item::Button("hi 4444", None, Action::Hi),
], ],
), ),
], ],

View file

@ -56,15 +56,15 @@ impl ResponsiveMenuBar {
/// Will panic if the menu bar collapses without tracking the size /// Will panic if the menu bar collapses without tracking the size
pub fn into_element< pub fn into_element<
'a, 'a,
Message: Clone + 'static, Message: std::fmt::Debug + Clone + 'static,
A: menu::Action<Message = Message>, A: menu::Action<Message = Message> + Clone,
S: Into<std::borrow::Cow<'static, str>> + 'static, S: Into<std::borrow::Cow<'static, str>> + 'static,
>( >(
self, self,
core: &Core, core: &Core,
key_binds: &HashMap<menu::KeyBind, A>, key_binds: &HashMap<menu::KeyBind, A>,
id: crate::widget::Id, 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<menu::Item<A, S>>)>, trees: Vec<(S, Vec<menu::Item<A, S>>)>,
) -> Element<'a, Message> { ) -> Element<'a, Message> {
use crate::widget::id_container; use crate::widget::id_container;
@ -81,17 +81,14 @@ impl ResponsiveMenuBar {
menu::bar( menu::bar(
trees trees
.into_iter() .into_iter()
.map( .map(|mt: (S, Vec<menu::Item<A, S>>)| {
|mt: ( menu::Tree::<_>::with_children(
std::borrow::Cow<'_, str>, crate::widget::RcElementWrapper::new(Element::from(
Vec<menu::Item<A, std::borrow::Cow<'_, str>>>,
)| {
menu::Tree::<_>::with_children(
menu::root(mt.0), menu::root(mt.0),
menu::items(key_binds, mt.1.into()), )),
) menu::items(key_binds, mt.1.into()),
}, )
) })
.collect(), .collect(),
) )
.item_width(self.item_width) .item_width(self.item_width)