diff options
author | 2021-08-26 14:53:15 +0700 | |
---|---|---|
committer | 2021-08-26 14:53:15 +0700 | |
commit | 6821114cae2e41fd2bc69d6fcaee1e8574ac061d (patch) | |
tree | 5741859eba63251190eb0a901a72ef4e185349e7 /native/src/widget/text.rs | |
parent | 2d65621a3b680457e689b93c800e74f726ffc175 (diff) | |
parent | 7614127d3641cf3224798c2f0ff07b6ae57d9a53 (diff) | |
download | iced-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.rs | 19 |
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: |