From 80cd2fc123343e63448db0efad8a3210bb2705e8 Mon Sep 17 00:00:00 2001 From: Ivy <fake@email.com> Date: Tue, 29 Aug 2023 13:33:08 -0700 Subject: [PATCH] Changing menu_image_button to use ImageButton builder --- crates/egui/src/menu.rs | 10 ++++------ crates/egui/src/ui.rs | 2 +- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/crates/egui/src/menu.rs b/crates/egui/src/menu.rs index 0364cf468b18..6c8d8f9b83f1 100644 --- a/crates/egui/src/menu.rs +++ b/crates/egui/src/menu.rs @@ -111,11 +111,10 @@ pub fn menu_button<R>( /// Returns `None` if the menu is not open. pub fn menu_image_button<R>( ui: &mut Ui, - texture_id: TextureId, - image_size: impl Into<Vec2>, + image_button: ImageButton, add_contents: impl FnOnce(&mut Ui) -> R, ) -> InnerResponse<Option<R>> { - stationary_menu_image_impl(ui, texture_id, image_size, Box::new(add_contents)) + stationary_menu_image_impl(ui, image_button, Box::new(add_contents)) } /// Construct a nested sub menu in another menu. @@ -202,14 +201,13 @@ fn stationary_menu_impl<'c, R>( /// Responds to primary clicks. fn stationary_menu_image_impl<'c, R>( ui: &mut Ui, - texture_id: TextureId, - image_size: impl Into<Vec2>, + image_button: ImageButton, add_contents: Box<dyn FnOnce(&mut Ui) -> R + 'c>, ) -> InnerResponse<Option<R>> { let bar_id = ui.id(); let mut bar_state = BarState::load(ui.ctx(), bar_id); - let button_response = ui.add(ImageButton::new(texture_id, image_size)); + let button_response = ui.add(image_button); let inner = bar_state.bar_menu(&button_response, add_contents); bar_state.store(ui.ctx(), bar_id); diff --git a/crates/egui/src/ui.rs b/crates/egui/src/ui.rs index 9f4135025289..686d7a66eb39 100644 --- a/crates/egui/src/ui.rs +++ b/crates/egui/src/ui.rs @@ -2222,7 +2222,7 @@ impl Ui { if let Some(menu_state) = self.menu_state.clone() { menu::submenu_button(self, menu_state, String::new(), add_contents) } else { - menu::menu_image_button(self, texture_id, image_size, add_contents) + menu::menu_image_button(self, ImageButton::new(texture_id, image_size), add_contents) } } }