diff options
author | 2024-11-04 18:26:46 +0100 | |
---|---|---|
committer | 2024-11-05 23:52:59 +0100 | |
commit | 6fc16769c4fb07d5e976a9c1762ecd17cf734bce (patch) | |
tree | cd25b9ce9f5ce989afd7d9ad1f9bd9cc225b0ae7 /widget/src/shader | |
parent | 14ec3307304fbf40e7f281d2356f40456124dfef (diff) | |
download | iced-6fc16769c4fb07d5e976a9c1762ecd17cf734bce.tar.gz iced-6fc16769c4fb07d5e976a9c1762ecd17cf734bce.tar.bz2 iced-6fc16769c4fb07d5e976a9c1762ecd17cf734bce.zip |
Unify `shader::Program` API with `canvas::Program`
Diffstat (limited to 'widget/src/shader')
-rw-r--r-- | widget/src/shader/event.rs | 23 | ||||
-rw-r--r-- | widget/src/shader/program.rs | 14 |
2 files changed, 7 insertions, 30 deletions
diff --git a/widget/src/shader/event.rs b/widget/src/shader/event.rs deleted file mode 100644 index 2d7c79bb..00000000 --- a/widget/src/shader/event.rs +++ /dev/null @@ -1,23 +0,0 @@ -//! Handle events of a custom shader widget. -use crate::core::keyboard; -use crate::core::mouse; -use crate::core::time::Instant; -use crate::core::touch; - -/// A [`Shader`] event. -/// -/// [`Shader`]: crate::Shader -#[derive(Debug, Clone, PartialEq)] -pub enum Event { - /// A mouse event. - Mouse(mouse::Event), - - /// A touch event. - Touch(touch::Event), - - /// A keyboard event. - Keyboard(keyboard::Event), - - /// A window requested a redraw. - RedrawRequested(Instant), -} diff --git a/widget/src/shader/program.rs b/widget/src/shader/program.rs index 5124a1cc..0fc110af 100644 --- a/widget/src/shader/program.rs +++ b/widget/src/shader/program.rs @@ -1,7 +1,7 @@ use crate::core::mouse; -use crate::core::{Rectangle, Shell}; +use crate::core::Rectangle; use crate::renderer::wgpu::Primitive; -use crate::shader; +use crate::shader::{self, Action}; /// The state and logic of a [`Shader`] widget. /// @@ -17,10 +17,10 @@ pub trait Program<Message> { type Primitive: Primitive + 'static; /// Update the internal [`State`] of the [`Program`]. This can be used to reflect state changes - /// based on mouse & other events. You can use the [`Shell`] to publish messages, request a - /// redraw for the window, etc. + /// based on mouse & other events. You can return an [`Action`] to publish a message, request a + /// redraw, or capture the event. /// - /// By default, this method does and returns nothing. + /// By default, this method returns `None`. /// /// [`State`]: Self::State fn update( @@ -29,8 +29,8 @@ pub trait Program<Message> { _event: shader::Event, _bounds: Rectangle, _cursor: mouse::Cursor, - _shell: &mut Shell<'_, Message>, - ) { + ) -> Option<Action<Message>> { + None } /// Draws the [`Primitive`]. |