diff options
author | 2021-07-13 20:55:21 +0200 | |
---|---|---|
committer | 2021-07-13 20:55:21 +0200 | |
commit | 6221adf2b1b1e8150931d4175e1e36870d45f6e5 (patch) | |
tree | 74fdfd1b7a894c53b586ad7f0c9d176828139d8c | |
parent | f3b056a6fc06248aa068549fc47ab6864829b875 (diff) | |
download | iced-6221adf2b1b1e8150931d4175e1e36870d45f6e5.tar.gz iced-6221adf2b1b1e8150931d4175e1e36870d45f6e5.tar.bz2 iced-6221adf2b1b1e8150931d4175e1e36870d45f6e5.zip |
Draft `conversion::menu_message` in `iced_winit`
... and wire it up to the runtime loop
-rw-r--r-- | glutin/src/application.rs | 10 | ||||
-rw-r--r-- | winit/src/application.rs | 10 | ||||
-rw-r--r-- | winit/src/conversion.rs | 11 |
3 files changed, 31 insertions, 0 deletions
diff --git a/glutin/src/application.rs b/glutin/src/application.rs index 279b6c77..991c8705 100644 --- a/glutin/src/application.rs +++ b/glutin/src/application.rs @@ -307,6 +307,16 @@ async fn run_instance<A, E, C>( // Maybe we can use `ControlFlow::WaitUntil` for this. } event::Event::WindowEvent { + event: event::WindowEvent::MenuEntryActivated(entry_id), + .. + } => { + if let Some(message) = + conversion::menu_message(state.menu(), entry_id) + { + messages.push(message); + } + } + event::Event::WindowEvent { event: window_event, .. } => { diff --git a/winit/src/application.rs b/winit/src/application.rs index bf4b2489..ada64dfc 100644 --- a/winit/src/application.rs +++ b/winit/src/application.rs @@ -387,6 +387,16 @@ async fn run_instance<A, E, C>( // Maybe we can use `ControlFlow::WaitUntil` for this. } event::Event::WindowEvent { + event: event::WindowEvent::MenuEntryActivated(entry_id), + .. + } => { + if let Some(message) = + conversion::menu_message(state.menu(), entry_id) + { + messages.push(message); + } + } + event::Event::WindowEvent { event: window_event, .. } => { diff --git a/winit/src/conversion.rs b/winit/src/conversion.rs index 3c483086..51db615b 100644 --- a/winit/src/conversion.rs +++ b/winit/src/conversion.rs @@ -215,6 +215,17 @@ pub fn menu<Message>(menu: &Menu<Message>) -> winit::window::Menu { converted } +/// Given a [`Menu`] and an identifier of a [`menu::Entry`], it returns the +/// `Message` that should be produced when that entry is activated. +pub fn menu_message<Message>( + _menu: &Menu<Message>, + id: isize, +) -> Option<Message> { + println!("Menu entry activated: {}", id); + + None +} + /// Converts a `MouseCursor` from [`iced_native`] to a [`winit`] cursor icon. /// /// [`winit`]: https://github.com/rust-windowing/winit |