summaryrefslogtreecommitdiffstats
path: root/native/src/widget/checkbox.rs
diff options
context:
space:
mode:
Diffstat (limited to 'native/src/widget/checkbox.rs')
-rw-r--r--native/src/widget/checkbox.rs16
1 files changed, 7 insertions, 9 deletions
diff --git a/native/src/widget/checkbox.rs b/native/src/widget/checkbox.rs
index 3e307f64..5393417e 100644
--- a/native/src/widget/checkbox.rs
+++ b/native/src/widget/checkbox.rs
@@ -2,7 +2,7 @@
use std::hash::Hash;
use crate::input::{mouse, ButtonState};
-use crate::{Element, Event, Hasher, Layout, MouseCursor, Node, Point, Widget};
+use crate::{Element, Event, Hasher, Layout, Node, Point, Widget};
pub use iced_core::Checkbox;
@@ -10,7 +10,7 @@ impl<Message, Renderer> Widget<Message, Renderer> for Checkbox<Message>
where
Renderer: self::Renderer,
{
- fn node(&self, renderer: &mut Renderer) -> Node {
+ fn node(&self, renderer: &Renderer) -> Node {
renderer.node(&self)
}
@@ -26,9 +26,7 @@ where
button: mouse::Button::Left,
state: ButtonState::Pressed,
}) => {
- let mouse_over = layout
- .children()
- .any(|child| child.bounds().contains(cursor_position));
+ let mouse_over = layout.bounds().contains(cursor_position);
if mouse_over {
messages.push((self.on_toggle)(!self.is_checked));
@@ -43,7 +41,7 @@ where
renderer: &mut Renderer,
layout: Layout<'_>,
cursor_position: Point,
- ) -> MouseCursor {
+ ) -> Renderer::Output {
renderer.draw(&self, layout, cursor_position)
}
@@ -59,12 +57,12 @@ where
///
/// [`Checkbox`]: struct.Checkbox.html
/// [renderer]: ../../renderer/index.html
-pub trait Renderer {
+pub trait Renderer: crate::Renderer {
/// Creates a [`Node`] for the provided [`Checkbox`].
///
/// [`Node`]: ../../struct.Node.html
/// [`Checkbox`]: struct.Checkbox.html
- fn node<Message>(&mut self, checkbox: &Checkbox<Message>) -> Node;
+ fn node<Message>(&self, checkbox: &Checkbox<Message>) -> Node;
/// Draws a [`Checkbox`].
///
@@ -80,7 +78,7 @@ pub trait Renderer {
checkbox: &Checkbox<Message>,
layout: Layout<'_>,
cursor_position: Point,
- ) -> MouseCursor;
+ ) -> Self::Output;
}
impl<'a, Message, Renderer> From<Checkbox<Message>>