From 5d12e194f45b4a01034f3f52fae16c10bc0192dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A9ctor=20Ram=C3=B3n=20Jim=C3=A9nez?= Date: Wed, 29 Apr 2020 20:58:59 +0200 Subject: [PATCH] Rename `Cursor::*_position` methods in `canvas` --- examples/bezier_tool/src/main.rs | 4 ++-- examples/game_of_life/src/main.rs | 7 +++---- wgpu/src/widget/canvas/cursor.rs | 22 +++++++++++----------- 3 files changed, 16 insertions(+), 17 deletions(-) diff --git a/examples/bezier_tool/src/main.rs b/examples/bezier_tool/src/main.rs index 6473db75..3cecd058 100644 --- a/examples/bezier_tool/src/main.rs +++ b/examples/bezier_tool/src/main.rs @@ -110,7 +110,7 @@ mod bezier { bounds: Rectangle, cursor: Cursor, ) -> Option { - let cursor_position = cursor.internal_position(&bounds)?; + let cursor_position = cursor.position_in(&bounds)?; match event { Event::Mouse(mouse_event) => match mouse_event { @@ -210,7 +210,7 @@ mod bezier { fn draw(&self, bounds: Rectangle, cursor: Cursor) -> Geometry { let mut frame = Frame::new(bounds.size()); - if let Some(cursor_position) = cursor.internal_position(&bounds) { + if let Some(cursor_position) = cursor.position_in(&bounds) { match *self { Pending::One { from } => { let line = Path::line(from, cursor_position); diff --git a/examples/game_of_life/src/main.rs b/examples/game_of_life/src/main.rs index 3e6848df..a2628594 100644 --- a/examples/game_of_life/src/main.rs +++ b/examples/game_of_life/src/main.rs @@ -298,7 +298,7 @@ mod grid { self.mouse_pressed = state == ButtonState::Pressed; } - let cursor_position = cursor.internal_position(&bounds)?; + let cursor_position = cursor.position_in(&bounds)?; let region = self.region(bounds.size()); let (i, j) = self.cell_at(region, cursor_position)?; @@ -365,8 +365,7 @@ mod grid { frame.translate(Vector::new(region.x, region.y)); frame.scale(region.width / SIZE as f32); - if let Some(cursor_position) = cursor.internal_position(&bounds) - { + if let Some(cursor_position) = cursor.position_in(&bounds) { if let Some((i, j)) = self.cell_at(region, cursor_position) { let interaction = Path::rectangle( @@ -397,7 +396,7 @@ mod grid { ) -> MouseCursor { let region = self.region(bounds.size()); - match cursor.internal_position(&bounds) { + match cursor.position_in(&bounds) { Some(position) if region.contains(position) => { MouseCursor::Crosshair } diff --git a/wgpu/src/widget/canvas/cursor.rs b/wgpu/src/widget/canvas/cursor.rs index a559782a..7ab58b87 100644 --- a/wgpu/src/widget/canvas/cursor.rs +++ b/wgpu/src/widget/canvas/cursor.rs @@ -24,20 +24,20 @@ impl Cursor { } } - pub fn relative_position(&self, bounds: &Rectangle) -> Option { - match self { - Cursor::Available(position) => { - Some(Point::new(position.x - bounds.x, position.y - bounds.y)) - } - _ => None, + pub fn position_in(&self, bounds: &Rectangle) -> Option { + if self.is_over(bounds) { + self.position_from(bounds.position()) + } else { + None } } - pub fn internal_position(&self, bounds: &Rectangle) -> Option { - if self.is_over(bounds) { - self.relative_position(bounds) - } else { - None + pub fn position_from(&self, origin: Point) -> Option { + match self { + Cursor::Available(position) => { + Some(Point::new(position.x - origin.x, position.y - origin.y)) + } + Cursor::Unavailable => None, } }