pub(crate) struct TextFragment {
pub base: BaseFragment,
pub run_data: Arc<SharedTextRunData>,
pub font_metrics: Arc<FontMetrics>,
pub font_key: FontInstanceKey,
pub glyphs: Vec<Arc<ShapedTextSlice>>,
pub justification_adjustment: Au,
pub character_range_in_dom_node: Range<Utf32CodeUnits>,
pub is_empty_for_text_cursor: bool,
}Fields§
§base: BaseFragment§run_data: Arc<SharedTextRunData>§font_metrics: Arc<FontMetrics>§font_key: FontInstanceKey§glyphs: Vec<Arc<ShapedTextSlice>>§justification_adjustment: AuExtra space to add for each justification opportunity.
character_range_in_dom_node: Range<Utf32CodeUnits>The range of characters this TextFragment represents within the text of its
original DOM node (modified by text transformation).
is_empty_for_text_cursor: boolWhether or not this TextFragment is an empty fragment added for the
benefit of placing a text cursor on an otherwise empty editable line.
Implementations§
Source§impl TextFragment
impl TextFragment
pub(crate) fn style<'a>(&'a self) -> AtomicRef<'a, ServoArc<ComputedValues>>
pub(crate) fn selected_style<'a>( &'a self, ) -> AtomicRef<'a, ServoArc<ComputedValues>>
pub fn print(&self, tree: &mut PrintTree)
Sourcepub(crate) fn point_is_within_vertical_boundaries(
&self,
point_in_fragment: Point2D<Au, CSSPixel>,
) -> bool
pub(crate) fn point_is_within_vertical_boundaries( &self, point_in_fragment: Point2D<Au, CSSPixel>, ) -> bool
Whether or not the given point is within the vertical boundaries of this
TextFragment.
Sourcepub(crate) fn distance_to_point_for_glyph_offset(
&self,
point_in_fragment: Point2D<Au, CSSPixel>,
) -> Au
pub(crate) fn distance_to_point_for_glyph_offset( &self, point_in_fragment: Point2D<Au, CSSPixel>, ) -> Au
Find the distance between for point relative to a TextFragment for the
purposes of finding a glyph offset. This is used to identify the most relevant
fragment for glyph offset queries during click handling.
Sourcepub(crate) fn character_offset(
&self,
point_in_fragment: Point2D<Au, CSSPixel>,
) -> Option<Utf32CodeUnits>
pub(crate) fn character_offset( &self, point_in_fragment: Point2D<Au, CSSPixel>, ) -> Option<Utf32CodeUnits>
Given a point relative to this TextFragment, find the most appropriate
character offset.
Note that the given point may be outside the TextFragment’s content rect:
- If the point is vertically above the
TextFragmentthe first offset will be returned. - If the point is vertically below the
TextFragment,Nonewill be returned.
Sourcefn unmapped_character_offset(
&self,
point_in_fragment: Point2D<Au, CSSPixel>,
) -> Option<Utf32CodeUnits>
fn unmapped_character_offset( &self, point_in_fragment: Point2D<Au, CSSPixel>, ) -> Option<Utf32CodeUnits>
Like Self::character_offset, but returning the character offset in layout text (after
applying white space collapse and the text-transform property), instead of the original DOM
text.
Trait Implementations§
Source§impl MallocSizeOf for TextFragment
impl MallocSizeOf for TextFragment
Source§fn size_of(&self, ops: &mut MallocSizeOfOps) -> usize
fn size_of(&self, ops: &mut MallocSizeOfOps) -> usize
Auto Trait Implementations§
impl !Freeze for TextFragment
impl !RefUnwindSafe for TextFragment
impl Send for TextFragment
impl Sync for TextFragment
impl Unpin for TextFragment
impl UnsafeUnpin for TextFragment
impl !UnwindSafe for TextFragment
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Filterable for T
impl<T> Filterable for T
Source§fn filterable(
self,
filter_name: &'static str,
) -> RequestFilterDataProvider<T, fn(DataRequest<'_>) -> bool>
fn filterable( self, filter_name: &'static str, ) -> RequestFilterDataProvider<T, fn(DataRequest<'_>) -> bool>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more