Struct layout_2013::list_item::ListItemFlow
source · #[repr(C)]pub struct ListItemFlow {
pub block_flow: BlockFlow,
pub marker_fragments: Vec<Fragment>,
}
Expand description
A block with the CSS display
property equal to list-item
.
Fields§
§block_flow: BlockFlow
Data common to all block flows.
marker_fragments: Vec<Fragment>
The marker, if outside. (Markers that are inside are instead just fragments on the interior
InlineFlow
.)
Implementations§
source§impl ListItemFlow
impl ListItemFlow
pub fn from_fragments_and_flotation( main_fragment: Fragment, marker_fragments: Vec<Fragment>, flotation: Option<FloatKind>, ) -> ListItemFlow
sourcefn assign_marker_inline_sizes(&mut self, layout_context: &LayoutContext<'_>)
fn assign_marker_inline_sizes(&mut self, layout_context: &LayoutContext<'_>)
Assign inline size and position for the marker. This is done during the assign_block_size
traversal because floats will impact the marker position. Therefore we need to have already
called assign_block_size
on the list item’s block flow, in order to know which floats
impact the position.
Per CSS 2.1 § 12.5.1, the marker position is not precisely specified, but it must be on the left side of the content (for ltr direction). However, flowing the marker around floats matches the rendering of Gecko and Blink.
fn assign_marker_block_sizes(&mut self, layout_context: &LayoutContext<'_>)
Trait Implementations§
source§impl Debug for ListItemFlow
impl Debug for ListItemFlow
source§impl Flow for ListItemFlow
impl Flow for ListItemFlow
source§fn positioning(&self) -> Position
fn positioning(&self) -> Position
The ‘position’ property of this flow.
source§fn as_mut_block(&mut self) -> &mut BlockFlow
fn as_mut_block(&mut self) -> &mut BlockFlow
If this is a block flow, returns the underlying object, borrowed mutably. Fails otherwise.
source§fn as_block(&self) -> &BlockFlow
fn as_block(&self) -> &BlockFlow
If this is a block flow, returns the underlying object. Fails otherwise.
source§fn bubble_inline_sizes(&mut self)
fn bubble_inline_sizes(&mut self)
Pass 1 of reflow: computes minimum and preferred inline-sizes. Read more
source§fn assign_inline_sizes(&mut self, layout_context: &LayoutContext<'_>)
fn assign_inline_sizes(&mut self, layout_context: &LayoutContext<'_>)
Pass 2 of reflow: computes inline-size.
source§fn assign_block_size(&mut self, layout_context: &LayoutContext<'_>)
fn assign_block_size(&mut self, layout_context: &LayoutContext<'_>)
Pass 3a of reflow: computes block-size.
source§fn compute_stacking_relative_position(
&mut self,
layout_context: &LayoutContext<'_>,
)
fn compute_stacking_relative_position( &mut self, layout_context: &LayoutContext<'_>, )
Phase 4 of reflow: Compute the stacking-relative position (origin of the content box,
in coordinates relative to the nearest ancestor stacking context).
source§fn place_float_if_applicable<'a>(&mut self)
fn place_float_if_applicable<'a>(&mut self)
If this is a float, places it. The default implementation does nothing.
source§fn contains_roots_of_absolute_flow_tree(&self) -> bool
fn contains_roots_of_absolute_flow_tree(&self) -> bool
Returns true if this flow contains fragments that are roots of an absolute flow tree.
source§fn is_absolute_containing_block(&self) -> bool
fn is_absolute_containing_block(&self) -> bool
Returns true if this is an absolute containing block.
source§fn update_late_computed_inline_position_if_necessary(
&mut self,
inline_position: Au,
)
fn update_late_computed_inline_position_if_necessary( &mut self, inline_position: Au, )
Updates the inline position of a child flow during the assign-height traversal. At present,
this is only used for absolutely-positioned inline-blocks.
source§fn update_late_computed_block_position_if_necessary(
&mut self,
block_position: Au,
)
fn update_late_computed_block_position_if_necessary( &mut self, block_position: Au, )
Updates the block position of a child flow during the assign-height traversal. At present,
this is only used for absolutely-positioned inline-blocks.
source§fn build_display_list(&mut self, state: &mut DisplayListBuildState<'_>)
fn build_display_list(&mut self, state: &mut DisplayListBuildState<'_>)
Phase 5 of reflow: builds display lists.
fn collect_stacking_contexts( &mut self, state: &mut StackingContextCollectionState, )
source§fn repair_style(&mut self, new_style: &Arc<ComputedValues>)
fn repair_style(&mut self, new_style: &Arc<ComputedValues>)
Attempts to perform incremental fixup of this flow by replacing its fragment’s style with
the new style. This can only succeed if the flow has exactly one fragment.
source§fn compute_overflow(&self) -> Overflow
fn compute_overflow(&self) -> Overflow
Returns the union of all overflow rects of all of this flow’s fragments.
source§fn generated_containing_block_size(&self, flow: OpaqueFlow) -> LogicalSize<Au>
fn generated_containing_block_size(&self, flow: OpaqueFlow) -> LogicalSize<Au>
Return the size of the containing block generated by this flow for the absolutely-
positioned descendant referenced by
for_flow
. For block flows, this is the padding box. Read moresource§fn iterate_through_fragment_border_boxes(
&self,
iterator: &mut dyn FragmentBorderBoxIterator,
level: i32,
stacking_context_position: &Point2D<Au>,
)
fn iterate_through_fragment_border_boxes( &self, iterator: &mut dyn FragmentBorderBoxIterator, level: i32, stacking_context_position: &Point2D<Au>, )
Iterates through border boxes of all of this flow’s fragments.
Level provides a zero based index indicating the current
depth of the flow tree during fragment iteration.
source§fn mutate_fragments(&mut self, mutator: &mut dyn FnMut(&mut Fragment))
fn mutate_fragments(&mut self, mutator: &mut dyn FnMut(&mut Fragment))
Mutably iterates through fragments in this flow.
source§fn as_flex(&self) -> &FlexFlow
fn as_flex(&self) -> &FlexFlow
If this is a flex flow, returns the underlying object. Fails otherwise.
source§fn as_inline(&self) -> &InlineFlow
fn as_inline(&self) -> &InlineFlow
If this is an inline flow, returns the underlying object. Fails otherwise.
source§fn as_mut_inline(&mut self) -> &mut InlineFlow
fn as_mut_inline(&mut self) -> &mut InlineFlow
If this is an inline flow, returns the underlying object, borrowed mutably. Fails
otherwise.
source§fn as_table_wrapper(&self) -> &TableWrapperFlow
fn as_table_wrapper(&self) -> &TableWrapperFlow
If this is a table wrapper flow, returns the underlying object. Fails otherwise.
source§fn as_mut_table(&mut self) -> &mut TableFlow
fn as_mut_table(&mut self) -> &mut TableFlow
If this is a table flow, returns the underlying object, borrowed mutably. Fails otherwise.
source§fn as_table(&self) -> &TableFlow
fn as_table(&self) -> &TableFlow
If this is a table flow, returns the underlying object. Fails otherwise.
source§fn as_mut_table_colgroup(&mut self) -> &mut TableColGroupFlow
fn as_mut_table_colgroup(&mut self) -> &mut TableColGroupFlow
If this is a table colgroup flow, returns the underlying object, borrowed mutably. Fails
otherwise.
source§fn as_table_colgroup(&self) -> &TableColGroupFlow
fn as_table_colgroup(&self) -> &TableColGroupFlow
If this is a table colgroup flow, returns the underlying object. Fails
otherwise.
source§fn as_mut_table_rowgroup(&mut self) -> &mut TableRowGroupFlow
fn as_mut_table_rowgroup(&mut self) -> &mut TableRowGroupFlow
If this is a table rowgroup flow, returns the underlying object, borrowed mutably. Fails
otherwise.
source§fn as_table_rowgroup(&self) -> &TableRowGroupFlow
fn as_table_rowgroup(&self) -> &TableRowGroupFlow
If this is a table rowgroup flow, returns the underlying object. Fails otherwise.
source§fn as_mut_table_row(&mut self) -> &mut TableRowFlow
fn as_mut_table_row(&mut self) -> &mut TableRowFlow
If this is a table row flow, returns the underlying object, borrowed mutably. Fails
otherwise.
source§fn as_table_row(&self) -> &TableRowFlow
fn as_table_row(&self) -> &TableRowFlow
If this is a table row flow, returns the underlying object. Fails otherwise.
source§fn as_mut_table_cell(&mut self) -> &mut TableCellFlow
fn as_mut_table_cell(&mut self) -> &mut TableCellFlow
If this is a table cell flow, returns the underlying object, borrowed mutably. Fails
otherwise.
source§fn as_table_cell(&self) -> &TableCellFlow
fn as_table_cell(&self) -> &TableCellFlow
If this is a table cell flow, returns the underlying object. Fails otherwise.
source§fn fragment(
&mut self,
layout_context: &LayoutContext<'_>,
_fragmentation_context: Option<FragmentationContext>,
) -> Option<Arc<dyn Flow>>
fn fragment( &mut self, layout_context: &LayoutContext<'_>, _fragmentation_context: Option<FragmentationContext>, ) -> Option<Arc<dyn Flow>>
Like
assign_block_size
, but is recurses explicitly into descendants.
Fit as much content as possible within available_block_size
.
If that’s not all of it, truncate the contents of self
and return a new flow similar to self
with the rest of the content. Read moresource§fn assign_block_size_for_inorder_child_if_necessary(
&mut self,
layout_context: &LayoutContext<'_>,
parent_thread_id: u8,
_content_box: LogicalRect<Au>,
) -> bool
fn assign_block_size_for_inorder_child_if_necessary( &mut self, layout_context: &LayoutContext<'_>, parent_thread_id: u8, _content_box: LogicalRect<Au>, ) -> bool
Assigns block-sizes in-order; or, if this is a float, places the float. The default
implementation simply assigns block-sizes if this flow might have floats in. Returns true
if it was determined that this child might have had floats in or false otherwise. Read more
fn has_non_invertible_transform_or_zero_scale(&self) -> bool
fn get_overflow_in_parent_coordinates(&self) -> Overflow
source§fn store_overflow(&mut self, _: &LayoutContext<'_>)
fn store_overflow(&mut self, _: &LayoutContext<'_>)
CSS Section 11.1
This is the union of rectangles of the flows for which we define the
Containing Block. Read more
source§fn mark_as_root(&mut self)
fn mark_as_root(&mut self)
Marks this flow as the root flow. The default implementation is a no-op.
fn is_root(&self) -> bool
fn contains_positioned_fragments(&self) -> bool
fn contains_relatively_positioned_fragments(&self) -> bool
source§fn print_extra_flow_children(&self, _: &mut PrintTree)
fn print_extra_flow_children(&self, _: &mut PrintTree)
Print any extra children (such as fragments) contained in this Flow
for debugging purposes. Any items inserted into the tree will become
children of this flow.
fn clipping_and_scrolling(&self) -> ClippingAndScrolling
impl HasBaseFlow for ListItemFlow
Auto Trait Implementations§
impl !Freeze for ListItemFlow
impl !RefUnwindSafe for ListItemFlow
impl Send for ListItemFlow
impl Sync for ListItemFlow
impl Unpin for ListItemFlow
impl !UnwindSafe for ListItemFlow
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
Mutably borrows from an owned value. Read more
source§impl<T> GetBaseFlow for Twhere
T: HasBaseFlow + ?Sized,
impl<T> GetBaseFlow for Twhere
T: HasBaseFlow + ?Sized,
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>
Converts
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>
Converts
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 moresource§impl<T> MaybeBoxed<Box<T>> for T
impl<T> MaybeBoxed<Box<T>> for T
source§fn maybe_boxed(self) -> Box<T>
fn maybe_boxed(self) -> Box<T>
Convert
source§impl<T> MaybeBoxed<T> for T
impl<T> MaybeBoxed<T> for T
source§fn maybe_boxed(self) -> T
fn maybe_boxed(self) -> T
Convert