diff options
| author | 2021-11-04 18:28:06 +0700 | |
|---|---|---|
| committer | 2021-11-04 18:28:06 +0700 | |
| commit | 343f9b7e2e594bd1fef1ed511d71e81f9c44e3d9 (patch) | |
| tree | 6c46efe785fa68318a835479e3db1e5626d764cd /native/src/text.rs | |
| parent | ef5a731e4bd17f763b1697c7f0ac595928e91e58 (diff) | |
| download | iced-343f9b7e2e594bd1fef1ed511d71e81f9c44e3d9.tar.gz iced-343f9b7e2e594bd1fef1ed511d71e81f9c44e3d9.tar.bz2 iced-343f9b7e2e594bd1fef1ed511d71e81f9c44e3d9.zip | |
Merge `iced_core::text` with `iced_native::text`
Diffstat (limited to '')
| -rw-r--r-- | native/src/text.rs | 31 | 
1 files changed, 28 insertions, 3 deletions
| diff --git a/native/src/text.rs b/native/src/text.rs index f112a8f3..81419481 100644 --- a/native/src/text.rs +++ b/native/src/text.rs @@ -1,7 +1,5 @@  use crate::alignment; -use crate::{Color, Point, Rectangle, Size}; - -pub use iced_core::text::Hit; +use crate::{Color, Point, Rectangle, Size, Vector};  #[derive(Debug, Clone, Copy)]  pub struct Text<'a, Font> { @@ -14,6 +12,33 @@ pub struct Text<'a, Font> {      pub vertical_alignment: alignment::Vertical,  } +/// The result of hit testing on text. +#[derive(Debug, Clone, Copy, PartialEq)] +pub enum Hit { +    /// The point was within the bounds of the returned character index. +    CharOffset(usize), +    /// The provided point was not within the bounds of a glyph. The index +    /// of the character with the closest centeroid position is returned, +    /// as well as its delta. +    NearestCharOffset(usize, Vector), +} + +impl Hit { +    /// Computes the cursor position corresponding to this [`HitTestResult`] . +    pub fn cursor(self) -> usize { +        match self { +            Self::CharOffset(i) => i, +            Self::NearestCharOffset(i, delta) => { +                if delta.x > f32::EPSILON { +                    i + 1 +                } else { +                    i +                } +            } +        } +    } +} +  pub trait Renderer: crate::Renderer {      /// The font type used.      type Font: Default + Copy; | 
