pub struct ElementData {Show 30 fields
pub name: QualName,
pub id: Option<Atom>,
pub attrs: Attributes,
pub is_focussable: bool,
pub style_attribute: Option<Arc<Locked<PropertyDeclarationBlock>>>,
pub special_data: SpecialElementData,
pub background_images: Vec<Option<ImageResourceData>>,
pub mask_images: Vec<Option<ImageResourceData>>,
pub inline_layout_data: Option<Box<TextLayout>>,
pub list_item_data: Option<Box<ListItemLayout>>,
pub template_contents: Option<NodeId>,
pub stylo_element_data: StyloData,
pub selector_flags: Cell<ElementSelectorFlags>,
pub guard: Option<SharedRwLock>,
pub element_state: ElementState,
pub has_snapshot: bool,
pub snapshot_handled: AtomicBool,
pub dirty_descendants: AtomicBool,
pub damaged_descendants: AtomicBool,
pub before: Option<NodeId>,
pub after: Option<NodeId>,
pub detailed_grid_info: Option<Box<DetailedGridInfo<Atom>>>,
pub style: Style<Atom>,
pub display_constructed_as: Display,
pub cache: Cache,
pub unrounded_layout: Layout,
pub final_layout: Layout,
pub scroll_offset: Point<f64>,
pub scrollable_overflow: Rect,
pub transform: Option<Affine>,
}Fields§
§name: QualNameThe elements tag name, namespace and prefix
id: Option<Atom>The elements id attribute parsed as an atom (if it has one)
attrs: AttributesThe element’s attributes
is_focussable: boolWhether the element is focussable
style_attribute: Option<Arc<Locked<PropertyDeclarationBlock>>>The element’s parsed style attribute (used by stylo)
special_data: SpecialElementDataHeterogeneous data that depends on the element’s type. For example:
- The image data for <img> elements.
- The parley Layout for inline roots.
- The text editor for input/textarea elements
background_images: Vec<Option<ImageResourceData>>§mask_images: Vec<Option<ImageResourceData>>§inline_layout_data: Option<Box<TextLayout>>Parley text layout (elements with inline inner display mode only)
list_item_data: Option<Box<ListItemLayout>>Data associated with display: list-item. Note that this display mode does not exclude inline_layout_data
template_contents: Option<NodeId>The element’s template contents (<template> elements only)
stylo_element_data: StyloDataStyle data from stylo, plus a lock guard that allows access to it.
selector_flags: Cell<ElementSelectorFlags>§guard: Option<SharedRwLock>A clone of the document’s shared style lock. Set when the owning
Node is constructed.
element_state: ElementState§has_snapshot: bool§snapshot_handled: AtomicBool§dirty_descendants: AtomicBoolWhether any descendant of this node needs restyling. Used by Stylo’s incremental style traversal to skip unchanged subtrees.
damaged_descendants: AtomicBoolWhether this node or any of its descendants may carry RestyleDamage.
Used by the damage propagation pass to skip unchanged subtrees.
before: Option<NodeId>§after: Option<NodeId>§detailed_grid_info: Option<Box<DetailedGridInfo<Atom>>>Detailed grid track sizing information from the most recent layout (grid containers only). Used by devtools grid inspection.
style: Style<Atom>§display_constructed_as: Display§cache: Cache§unrounded_layout: Layout§final_layout: Layout§scroll_offset: Point<f64>§scrollable_overflow: Rect§transform: Option<Affine>Implementations§
Source§impl ElementData
impl ElementData
pub fn new(name: QualName, attrs: Vec<Attribute>) -> Self
pub fn attrs(&self) -> &[Attribute]
pub fn attr(&self, name: impl PartialEq<LocalName>) -> Option<&str>
pub fn attr_parsed<T: FromStr>( &self, name: impl PartialEq<LocalName>, ) -> Option<T>
Sourcepub fn has_attr(&self, name: impl PartialEq<LocalName>) -> bool
pub fn has_attr(&self, name: impl PartialEq<LocalName>) -> bool
Detects the presence of the attribute, treating any value as truthy.
pub fn can_be_disabled(&self) -> bool
Sourcepub fn is_link(&self) -> bool
pub fn is_link(&self) -> bool
Whether this element is a link (an <a> or <area> element with an href attribute)
Sourcepub fn flush_link_state(&mut self)
pub fn flush_link_state(&mut self)
Sync the visitedness bits of element_state with the element’s link-ness.
Blitz does not track browsing history, so all links are unvisited.
Stylo’s snapshot invalidation (ElementWrapper::is_link) determines link-ness
from these state bits, so they must be kept accurate for :link/:any-link
selectors to be correctly invalidated. Must be called whenever the href
attribute is added or removed.
pub fn image_data(&self) -> Option<&ImageData>
pub fn image_data_mut(&mut self) -> Option<&mut ImageData>
pub fn raster_image_data(&self) -> Option<&RasterImageData>
pub fn raster_image_data_mut(&mut self) -> Option<&mut RasterImageData>
pub fn canvas_data(&self) -> Option<&CanvasData>
pub fn sub_doc_data(&self) -> Option<&dyn Document>
pub fn sub_doc_data_mut(&mut self) -> Option<&mut dyn Document>
pub fn svg_data(&self) -> Option<&Tree>
pub fn text_input_data(&self) -> Option<&TextInputData>
pub fn text_input_data_mut(&mut self) -> Option<&mut TextInputData>
pub fn custom_widget_data(&self) -> Option<&CustomWidgetData>
pub fn custom_widget_data_mut(&mut self) -> Option<&mut CustomWidgetData>
pub fn checkbox_input_checked(&self) -> Option<bool>
pub fn checkbox_input_checked_mut(&mut self) -> Option<&mut bool>
Sourcepub fn set_checkbox_input_checked(&mut self, checked: bool)
pub fn set_checkbox_input_checked(&mut self, checked: bool)
Set the checked state of a checkbox/radio input, keeping the
ElementState::CHECKED bit (used for :checked selector matching and
invalidation) in sync with the special data.
pub fn file_data(&self) -> Option<&FileData>
pub fn file_data_mut(&mut self) -> Option<&mut FileData>
pub fn flush_is_focussable(&mut self)
pub fn flush_style_attribute( &mut self, guard: &SharedRwLock, url_extra_data: &UrlExtraData, )
pub fn set_style_property( &mut self, name: &str, value: &str, guard: &SharedRwLock, url_extra_data: UrlExtraData, ) -> bool
pub fn remove_style_property( &mut self, name: &str, guard: &SharedRwLock, url_extra_data: UrlExtraData, ) -> bool
pub fn set_sub_document(&mut self, sub_document: Box<dyn Document>)
pub fn remove_sub_document(&mut self)
pub fn set_custom_widget(&mut self, widget: Box<dyn Widget>)
pub fn remove_custom_widget(&mut self) -> Vec<ResourceId>
pub fn take_inline_layout(&mut self) -> Option<Box<TextLayout>>
Trait Implementations§
Source§impl Clone for ElementData
impl Clone for ElementData
Source§fn clone(&self) -> Self
fn clone(&self) -> Self
Clones the content of the element (name, attributes, style attribute, special data, etc.). Runtime style/layout state (stylo data, taffy layout, caches, pseudo-element ids, …) is reset to its default so that the clone behaves like a freshly-created element that has not yet been styled or laid out.
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl !Freeze for ElementData
impl !RefUnwindSafe for ElementData
impl !Send for ElementData
impl !Sync for ElementData
impl !UnwindSafe for ElementData
impl Unpin for ElementData
impl UnsafeUnpin for ElementData
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> ErasedDestructor for Twhere
T: 'static,
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