summaryrefslogtreecommitdiffstats
path: root/native/src/widget/text.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón <hector0193@gmail.com>2021-08-26 14:53:15 +0700
committerLibravatar GitHub <noreply@github.com>2021-08-26 14:53:15 +0700
commit6821114cae2e41fd2bc69d6fcaee1e8574ac061d (patch)
tree5741859eba63251190eb0a901a72ef4e185349e7 /native/src/widget/text.rs
parent2d65621a3b680457e689b93c800e74f726ffc175 (diff)
parent7614127d3641cf3224798c2f0ff07b6ae57d9a53 (diff)
downloadiced-6821114cae2e41fd2bc69d6fcaee1e8574ac061d.tar.gz
iced-6821114cae2e41fd2bc69d6fcaee1e8574ac061d.tar.bz2
iced-6821114cae2e41fd2bc69d6fcaee1e8574ac061d.zip
Merge pull request #670 from twitchyliquid64/text_backend
Refactor textual hit testing into a `renderer::Backend` method
Diffstat (limited to 'native/src/widget/text.rs')
-rw-r--r--native/src/widget/text.rs19
1 files changed, 19 insertions, 0 deletions
diff --git a/native/src/widget/text.rs b/native/src/widget/text.rs
index 6cc18e6c..adf6a74f 100644
--- a/native/src/widget/text.rs
+++ b/native/src/widget/text.rs
@@ -4,6 +4,8 @@ use crate::{
Rectangle, Size, VerticalAlignment, Widget,
};
+pub use iced_core::text::Hit;
+
use std::hash::Hash;
/// A paragraph of text.
@@ -179,6 +181,23 @@ pub trait Renderer: crate::Renderer {
bounds: Size,
) -> (f32, f32);
+ /// Tests whether the provided point is within the boundaries of [`Text`]
+ /// laid out with the given parameters, returning information about
+ /// the nearest character.
+ ///
+ /// If `nearest_only` is true, the hit test does not consider whether the
+ /// the point is interior to any glyph bounds, returning only the character
+ /// with the nearest centeroid.
+ fn hit_test(
+ &self,
+ contents: &str,
+ size: f32,
+ font: Self::Font,
+ bounds: Size,
+ point: Point,
+ nearest_only: bool,
+ ) -> Hit;
+
/// Draws a [`Text`] fragment.
///
/// It receives: