Skip to main content

LayoutComponent

Struct LayoutComponent 

Source
pub struct LayoutComponent {
    pub available_width: f32,
    pub authored_available_width: SizeDimension,
    pub available_height: Option<f32>,
    pub authored_available_height: Option<SizeDimension>,
    pub dirty: bool,
    pub unit_scale: f32,
    pub inspect: bool,
    pub computed_size_wu: Option<(f32, f32)>,
    /* private fields */
}
Expand description

The viewport of a self-contained layout subtree — analogous to the browser’s initial containing block.

LayoutComponent does not participate in flow itself; it defines the space available to the first HtmlElementComponent child (usually Body).

Multiple LayoutComponent nodes can coexist — one per panel, one per HUD region, one per workspace.

available_width is in glyph units (1.0 = one monospace character cell). World-space scaling stays in TransformComponent.

Set dirty = true to signal the LayoutSystem to recompute the subtree on the next tick.

Fields§

§available_width: f32

Available inline (X-axis) width for children, in glyph units.

§authored_available_width: SizeDimension

Authored available width as entered in MMS.

§available_height: Option<f32>

Optional block (Y-axis) constraint. Used for overflow/clip; None = unconstrained.

§authored_available_height: Option<SizeDimension>

Authored available height as entered in MMS.

§dirty: bool

When true, the layout system will recompute this subtree on the next tick.

§unit_scale: f32

Scale factor to convert glyph units → local coordinates of the nearest ancestor TransformComponent.

When the parent TransformComponent already has scale = TEXT_SCALE (i.e. the whole subtree is in glyph-unit space), leave this at the default 1.0.

When the parent TransformComponent has scale = 1.0 (world units) and the StyleComponent heights are authored in glyph units, set unit_scale = TEXT_SCALE (e.g. 0.08) so the emitted UpdateTransform translations land in world space.

§inspect: bool

When true, the layout pass spawns box-model viz quads (padding, content, margin) for each styled item in this subtree. Per-tree dynamic toggle — flipped via IntentValue::SetLayoutInspect (MMS: layout.set_inspect(bool)). Static MMS declarations can also enable viz by attaching an InspectLayoutComponent child to the LayoutRoot.

§computed_size_wu: Option<(f32, f32)>

Computed total extent of this layout root’s direct children, in world units, populated after each successful layout pass. None before the first layout.

Implementations§

Source§

impl LayoutComponent

Source

pub fn new(available_width: f32) -> Self

Source

pub fn with_height(self, h: f32) -> Self

Source

pub fn with_unit_scale(self, scale: f32) -> Self

Source

pub fn mark_dirty(&mut self)

Mark this layout root as needing a recompute.

Source

pub fn set_available_width(&mut self, w: f32)

Update available_width and flag this root for recompute on the next tick.

Source

pub fn set_available_width_dimension(&mut self, width: SizeDimension)

Source

pub fn set_available_height(&mut self, h: f32)

Source

pub fn set_available_height_dimension(&mut self, height: SizeDimension)

Source

pub fn set_unit_scale(&mut self, scale: f32)

Trait Implementations§

Source§

impl Clone for LayoutComponent

Source§

fn clone(&self) -> LayoutComponent

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Component for LayoutComponent

Source§

fn name(&self) -> &'static str

Short debug/type name for this component kind (e.g. “transform”, “camera”).
Source§

fn set_id(&mut self, id: ComponentId)

Source§

fn as_any(&self) -> &dyn Any

Source§

fn as_any_mut(&mut self) -> &mut dyn Any

Source§

fn to_mms_ast(&self, _world: &World) -> ComponentExpression

Encode this component as an MMS Component Expression AST node. Read more
Source§

fn init(&mut self, _emit: &mut dyn SignalEmitter, _component: ComponentId)

Called when component is added to the World
Source§

fn cleanup(&mut self, _emit: &mut dyn SignalEmitter, _component: ComponentId)

Called when component is removed from the World.
Source§

fn encode(&self) -> HashMap<String, Value>

Encode component data to a HashMap for serialization. Read more
Source§

fn decode(&mut self, _data: &HashMap<String, Value>) -> Result<(), String>

Decode component data from a HashMap after deserialization. Read more
Source§

impl Debug for LayoutComponent

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<S, T> Duplex<S> for T
where T: FromSample<S> + ToSample<S>,

Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<S> FromSample<S> for S

Source§

fn from_sample_(s: S) -> S

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<F, T> IntoSample<T> for F
where T: FromSample<F>,

Source§

fn into_sample(self) -> T

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> ToSample<U> for T
where U: FromSample<T>,

Source§

fn to_sample_(self) -> U

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more