Take Rectangle by value in Cursor API

This commit is contained in:
Héctor Ramón Jiménez 2023-06-08 20:16:46 +02:00
parent 34451bff18
commit 5c8cfb411e
No known key found for this signature in database
GPG key ID: 140CC052C94F138E
21 changed files with 57 additions and 62 deletions

View file

@ -101,7 +101,7 @@ mod bezier {
cursor: mouse::Cursor,
) -> (event::Status, Option<Curve>) {
let cursor_position =
if let Some(position) = cursor.position_in(&bounds) {
if let Some(position) = cursor.position_in(bounds) {
position
} else {
return (event::Status::Ignored, None);
@ -183,7 +183,7 @@ mod bezier {
bounds: Rectangle,
cursor: mouse::Cursor,
) -> mouse::Interaction {
if cursor.is_over(&bounds) {
if cursor.is_over(bounds) {
mouse::Interaction::Crosshair
} else {
mouse::Interaction::default()
@ -226,7 +226,7 @@ mod bezier {
) -> Geometry {
let mut frame = Frame::new(renderer, bounds.size());
if let Some(cursor_position) = cursor.position_in(&bounds) {
if let Some(cursor_position) = cursor.position_in(bounds) {
match *self {
Pending::One { from } => {
let line = Path::line(from, cursor_position);

View file

@ -407,7 +407,7 @@ mod grid {
}
let cursor_position =
if let Some(position) = cursor.position_in(&bounds) {
if let Some(position) = cursor.position_in(bounds) {
position
} else {
return (event::Status::Ignored, None);
@ -567,10 +567,9 @@ mod grid {
let overlay = {
let mut frame = Frame::new(renderer, bounds.size());
let hovered_cell =
cursor.position_in(&bounds).map(|position| {
Cell::at(self.project(position, frame.size()))
});
let hovered_cell = cursor.position_in(bounds).map(|position| {
Cell::at(self.project(position, frame.size()))
});
if let Some(cell) = hovered_cell {
frame.with_save(|frame| {
@ -675,7 +674,7 @@ mod grid {
Interaction::Drawing => mouse::Interaction::Crosshair,
Interaction::Erasing => mouse::Interaction::Crosshair,
Interaction::Panning { .. } => mouse::Interaction::Grabbing,
Interaction::None if cursor.is_over(&bounds) => {
Interaction::None if cursor.is_over(bounds) => {
mouse::Interaction::Crosshair
}
_ => mouse::Interaction::default(),

View file

@ -62,7 +62,7 @@ mod rainbow {
let color_v = [0.75, 0.0, 0.5, 1.0];
let posn_center = {
if let Some(cursor_position) = cursor.position_in(&bounds) {
if let Some(cursor_position) = cursor.position_in(bounds) {
[cursor_position.x, cursor_position.y]
} else {
[bounds.width / 2.0, bounds.height / 2.0]

View file

@ -390,7 +390,7 @@ mod modal {
mouse::Button::Left,
)) = &event
{
if !cursor.is_over(&content_bounds) {
if !cursor.is_over(content_bounds) {
shell.publish(message.clone());
return event::Status::Captured;
}

View file

@ -108,12 +108,12 @@ impl canvas::Program<Message> for SierpinskiGraph {
bounds: Rectangle,
cursor: mouse::Cursor,
) -> (event::Status, Option<Message>) {
let cursor_position =
if let Some(position) = cursor.position_in(&bounds) {
position
} else {
return (event::Status::Ignored, None);
};
let cursor_position = if let Some(position) = cursor.position_in(bounds)
{
position
} else {
return (event::Status::Ignored, None);
};
match event {
Event::Mouse(mouse_event) => {