Skip to main content

FlexColumn

Struct FlexColumn 

Source
pub struct FlexColumn {
    pub gap: f64,
    pub inner_padding: Insets,
    pub background: Color,
    pub use_panel_bg: bool,
    pub fit_width: bool,
    pub top_anchor: bool,
    /* private fields */
}
Expand description

Stacks children top-to-bottom (first child = visually topmost).

Fields§

§gap: f64§inner_padding: Insets§background: Color§use_panel_bg: bool

When true, paint background using ctx.visuals().panel_fill regardless of the stored background colour.

§fit_width: bool

When true, layout reports the column’s natural content width (max over children, + horizontal padding) instead of the full available.width. Used by auto-sized ancestors that want the column to shrink-to-content rather than stretch. Off by default for backward compatibility.

§top_anchor: bool

When true, children are anchored to the TOP of the column’s inner area, with any extra height appearing as whitespace at the BOTTOM. Off by default — legacy callers (e.g. ScrollView content) rely on the natural-anchored layout where children occupy the BOTTOM of their slot when oversized.

Implementations§

Source§

impl FlexColumn

Source

pub fn new() -> Self

Source

pub fn with_gap(self, gap: f64) -> Self

Source

pub fn with_padding(self, p: f64) -> Self

Source

pub fn with_inner_padding(self, p: Insets) -> Self

Source

pub fn with_background(self, c: Color) -> Self

Source

pub fn with_panel_bg(self) -> Self

Use ctx.visuals().panel_fill as background instead of the stored color.

Source

pub fn with_fit_width(self, fit: bool) -> Self

Opt into content-fit width — layout reports the widest child’s natural width (+ horizontal padding) instead of the full available width. Required when this column is the content of an auto-sized Window; without it, wrapped Labels claim the full available width and the window grows to the canvas. Matches egui’s per-column shrink-to-content option.

Source

pub fn with_top_anchor(self, on: bool) -> Self

Anchor children to the TOP of the inner area rather than the bottom of the natural content extent. Default is bottom (the classic Y-up “natural-anchored” placement) so callers like ScrollView whose layout pass uses available.height ≈ ∞ keep working — they need cursor_y to be derived from natural extent, not from the supplied (huge) available. Opt in for containers placed inside a Resize widget or other oversized slot where you want the visible content to start at the top of the frame and any extra space to appear below.

Source

pub fn with_margin(self, m: Insets) -> Self

Source

pub fn with_h_anchor(self, h: HAnchor) -> Self

Source

pub fn with_v_anchor(self, v: VAnchor) -> Self

Source

pub fn with_min_size(self, s: Size) -> Self

Source

pub fn with_max_size(self, s: Size) -> Self

Source

pub fn add(self, child: Box<dyn Widget>) -> Self

Add a fixed-size child (flex = 0).

Source

pub fn add_flex(self, child: Box<dyn Widget>, flex: f64) -> Self

Add a flex child that expands proportionally.

Source

pub fn push(&mut self, child: Box<dyn Widget>, flex: f64)

Push a child directly (for use without builder chaining).

Trait Implementations§

Source§

impl Default for FlexColumn

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Widget for FlexColumn

Source§

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

A static name for this widget type, used by the inspector. Default: “Widget”.
Source§

fn bounds(&self) -> Rect

Bounding rectangle in parent-local Y-up coordinates.
Source§

fn set_bounds(&mut self, b: Rect)

Set the bounding rectangle. Called by the parent during layout.
Source§

fn children(&self) -> &[Box<dyn Widget>]

Immutable access to child widgets.
Source§

fn children_mut(&mut self) -> &mut Vec<Box<dyn Widget>>

Mutable access to child widgets (required for event dispatch + layout).
Source§

fn margin(&self) -> Insets

Outer margin around this widget in logical units. Read more
Source§

fn widget_base(&self) -> Option<&WidgetBase>

Direct read access to the widget’s embedded WidgetBase. Read more
Source§

fn widget_base_mut(&mut self) -> Option<&mut WidgetBase>

Mutable counterpart of widget_base. Read more
Source§

fn padding(&self) -> Insets

Inner padding — space the widget reserves between its own bounds and its child layout area. Only container widgets carry padding; leaf widgets default to Insets::ZERO. Read more
Source§

fn h_anchor(&self) -> HAnchor

Horizontal anchor: how this widget sizes/positions itself horizontally within the slot the parent assigns. Default: HAnchor::FIT (take natural content width).
Source§

fn v_anchor(&self) -> VAnchor

Vertical anchor: how this widget sizes/positions itself vertically within the slot the parent assigns. Default: VAnchor::FIT (take natural content height).
Source§

fn min_size(&self) -> Size

Minimum size constraint (logical units). Read more
Source§

fn max_size(&self) -> Size

Maximum size constraint (logical units). Read more
Source§

fn measure_min_height(&self, available_w: f64) -> f64

Report the minimum height this widget needs to fully render its content when given the supplied available_w for width. Read more
Source§

fn layout(&mut self, available: Size) -> Size

Compute desired size given available space, and update internal layout. Read more
Source§

fn paint(&mut self, ctx: &mut dyn DrawCtx)

Paint this widget’s own content into ctx. Read more
Source§

fn on_event(&mut self, _: &Event) -> EventResult

Handle an event. The event’s positions are already in local Y-up coordinates. Return EventResult::Consumed to stop bubbling. Read more
Source§

fn hit_test(&self, local_pos: Point) -> bool

Return true if local_pos (in this widget’s local coordinates) falls inside this widget’s interactive area. Default: axis-aligned rect test.
Source§

fn claims_pointer_exclusively(&self, _local_pos: Point) -> bool

When true, hit_test_subtree stops recursing into this widget’s children and returns this widget as the hit target. Used for floating overlays (e.g. a scrollbar painted above its content) that must claim the pointer before children that happen to share the same pixels. Default: false.
Source§

fn hit_test_global_overlay(&self, _local_pos: Point) -> bool

Return true when local_pos hits an app-level overlay owned by this widget. Unlike normal hit testing, ancestors may be missed because the overlay is painted outside their bounds.
Source§

fn has_active_modal(&self) -> bool

Whether this widget currently owns an app-modal interaction layer. Read more
Source§

fn on_unconsumed_key( &mut self, _key: &Key, _modifiers: Modifiers, ) -> EventResult

Handle a key that was not consumed by the focused widget path. Read more
Source§

fn is_focusable(&self) -> bool

Whether this widget can receive keyboard focus. Default: false.
Source§

fn id(&self) -> Option<&str>

Optional human-readable identifier for this widget instance. Read more
Source§

fn is_visible(&self) -> bool

Return false to suppress painting this widget and all its children. The widget’s own paint() will not be called. Default: true.
Source§

fn properties(&self) -> Vec<(&'static str, String)>

Return type-specific properties for the inspector properties pane. Read more
Source§

fn set_label_color(&mut self, _color: Color)

If this widget is text-bearing (e.g. Label), update its foreground colour. Default is a no-op. Composite widgets call this on their children to retint labels without rebuilding them — used by Button when toggling between active (white text on accent) and inactive (theme text on subtle bg) appearances.
Source§

fn set_label_text(&mut self, _text: &str)

If this widget is text-bearing (e.g. Label), update its displayed text. Default is a no-op. Composite widgets that own a Label child use this to push live values (e.g. an FPS counter) into the child without bypassing the standard backbuffered glyph cache — calling this on a Label only invalidates the cache when the text actually changed.
Source§

fn as_reflect(&self) -> Option<&dyn Reflect>

Opt-in reflection accessor for the inspector’s typed property editors. Read more
Source§

fn as_reflect_mut(&mut self) -> Option<&mut dyn Reflect>

Mutable counterpart of as_reflect. Used by the inspector to write edits back into the live widget.
Source§

fn has_backbuffer(&self) -> bool

Whether this widget renders into its own offscreen buffer before compositing into the parent. Read more
Source§

fn compositing_layer(&mut self) -> Option<CompositingLayer>

Request that this widget subtree be painted into a transient transparent compositing layer before being blended into its parent. Read more
Source§

fn backbuffer_spec(&mut self) -> BackbufferSpec

Unified widget-owned backbuffer request.
Source§

fn backbuffer_state_mut(&mut self) -> Option<&mut BackbufferState>

Mutable retained backbuffer state for widgets that request a BackbufferSpec other than BackbufferKind::None.
Source§

fn mark_dirty(&mut self)

Mark this widget’s own retained surface dirty, if it owns one. Read more
Source§

fn backbuffer_cache_mut(&mut self) -> Option<&mut BackbufferCache>

Opt into per-widget CPU bitmap caching with a dirty flag. Read more
Source§

fn backbuffer_mode(&self) -> BackbufferMode

Storage format for this widget’s backbuffer. Ignored unless [backbuffer_cache_mut] returns Some. Default BackbufferMode::Rgba — correct for any widget. Opt into BackbufferMode::LcdCoverage only when the widget paints opaque content covering its full bounds.
Source§

fn contributes_children_to_inspector(&self) -> bool

Whether the inspector should recurse into this widget’s children. Read more
Source§

fn show_in_inspector(&self) -> bool

Return false to hide this widget (and its subtree) from the inspector node snapshot entirely. Intended for zero-size utility widgets such as layout-time watchers / tickers / invisible composers — they bloat the inspector tree without providing user-relevant information and, at scale, can make the inspector’s per-frame tree rebuild expensive.
Source§

fn lcd_preference(&self) -> Option<bool>

Per-widget LCD subpixel preference for backbuffered text rendering. Read more
Source§

fn paint_overlay(&mut self, _ctx: &mut dyn DrawCtx)

Paint decorations that must appear on top of all children. Read more
Source§

fn finish_paint(&mut self, _ctx: &mut dyn DrawCtx)

Called after paint, child painting, and optional overlay painting. Read more
Source§

fn paint_global_overlay(&mut self, _ctx: &mut dyn DrawCtx)

Paint app-level overlays after the entire widget tree has been painted. Read more
Source§

fn clip_children_rect(&self) -> Option<(f64, f64, f64, f64)>

Return a clip rectangle (in local coordinates) that constrains all child painting. paint_subtree applies this clip before recursing into children, then restores the previous clip state afterward. The clip does not affect paint_overlay, which runs after the clip is removed. Read more
Source§

fn enforce_integer_bounds(&self) -> bool

Whether paint_subtree should snap this widget’s incoming translation to the physical pixel grid. Read more
Source§

fn take_raise_request(&mut self) -> bool

Container widgets (notably crate::widgets::Stack) call this on each child at the start of layout(). A widget that returns true is moved to the END of its parent’s child list — painted last, i.e. raised to the top of the z-order. take_ semantics: the call is also expected to clear the request so the child doesn’t keep getting raised every frame. Read more
Source§

fn needs_draw(&self) -> bool

Return true if this widget, or any visible descendant, has an ongoing draw need that should keep the host drawing. Read more
Source§

fn next_draw_deadline(&self) -> Option<Instant>

Return the earliest wall-clock instant at which this widget (or any visible descendant) wants the next draw. None = no scheduled wake. The host loop turns a Some(t) into ControlFlow::WaitUntil(t) so e.g. a cursor blink fires without continuous polling. 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> Downcast for T
where T: Any,

Source§

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

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

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

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

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

Converts &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)

Converts &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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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 more
Source§

impl<A> Is for A
where A: Any,

Source§

fn is<T>() -> bool
where T: Any,

Checks if the current type “is” another type, using a TypeId equality comparison. This is most useful in the context of generic logic. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<R, P> ReadPrimitive<R> for P
where R: Read + ReadEndian<P>, P: Default,

Source§

fn read_from_little_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_little_endian().
Source§

fn read_from_big_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_big_endian().
Source§

fn read_from_native_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_native_endian().
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.