Skip to main content

ViewModifier

Trait ViewModifier 

Source
pub trait ViewModifier: Send + Clone {
    // Required method
    fn modify<V: View>(self, content: V) -> impl View;

    // Provided methods
    fn get_grid_placement(&self) -> Option<GridPlacement> { ... }
    fn render(&self, _renderer: &mut dyn Renderer, _rect: Rect) { ... }
    fn post_render(&self, _renderer: &mut dyn Renderer, _rect: Rect) { ... }
    fn render_view<V: View>(
        &self,
        view: &V,
        renderer: &mut dyn Renderer,
        rect: Rect,
    ) { ... }
    fn transform_rect(&self, rect: Rect) -> Rect { ... }
    fn transform_proposal(&self, proposal: SizeProposal) -> SizeProposal { ... }
    fn transform_size(&self, size: Size) -> Size { ... }
    fn measure_view<V: View>(
        &self,
        view: &V,
        renderer: &mut dyn Renderer,
        proposal: SizeProposal,
    ) -> Size { ... }
    fn child_flex_weight<V: View>(&self, view: &V) -> f32 { ... }
    fn layout(&self) -> Option<&dyn LayoutView> { ... }
}

Required Methods§

Source

fn modify<V: View>(self, content: V) -> impl View

Provided Methods§

Source

fn get_grid_placement(&self) -> Option<GridPlacement>

Returns the grid placement configuration if this modifier defines one.

Source

fn render(&self, _renderer: &mut dyn Renderer, _rect: Rect)

Core rendering hook called before child views.

Source

fn post_render(&self, _renderer: &mut dyn Renderer, _rect: Rect)

Cleanup hook called after child views.

Source

fn render_view<V: View>( &self, view: &V, renderer: &mut dyn Renderer, rect: Rect, )

Allows a modifier to completely override or wrap the rendering of its child. Default implementation performs a standard push -> transform -> render child -> pop sequence.

Source

fn transform_rect(&self, rect: Rect) -> Rect

Source

fn transform_proposal(&self, proposal: SizeProposal) -> SizeProposal

Allows a modifier to transform the layout proposal before it reaches the child.

Source

fn transform_size(&self, size: Size) -> Size

Allows a modifier to transform the resulting size from the child.

Source

fn measure_view<V: View>( &self, view: &V, renderer: &mut dyn Renderer, proposal: SizeProposal, ) -> Size

Measure hook that coordinates size propagation.

Source

fn child_flex_weight<V: View>(&self, view: &V) -> f32

Allows a modifier to override or pass through the child’s flex weight.

Source

fn layout(&self) -> Option<&dyn LayoutView>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl ViewModifier for BackgroundModifier

Source§

impl ViewModifier for BifrostBridgeModifier

Source§

impl ViewModifier for BifrostLayerModifier

Source§

impl ViewModifier for BifrostModifier

Source§

impl ViewModifier for BorderModifier

Source§

impl ViewModifier for ClipModifier

Source§

impl ViewModifier for ElevationModifier

Source§

impl ViewModifier for FafnirModifier

Source§

impl ViewModifier for FlexModifier

Source§

impl ViewModifier for ForegroundColorModifier

Source§

impl ViewModifier for FrameModifier

Source§

impl ViewModifier for GridPlacementModifier

Source§

impl ViewModifier for GungnirModifier

Source§

impl ViewModifier for GungnirPulseModifier

Source§

impl ViewModifier for KvasirVibeModifier

Source§

impl ViewModifier for LayoutModifier

Source§

impl ViewModifier for LifecycleModifier

Source§

impl ViewModifier for MagneticModifier

Source§

impl ViewModifier for ManiGlowModifier

Source§

impl ViewModifier for MimirIntentModifier

Source§

impl ViewModifier for MjolnirShatterModifier

Source§

impl ViewModifier for MjolnirSliceModifier

Source§

impl ViewModifier for OdinsEyeModifier

Source§

impl ViewModifier for OffsetModifier

Source§

impl ViewModifier for OnClickModifier

Source§

impl ViewModifier for OnPointerDownModifier

Source§

impl ViewModifier for OnPointerEnterModifier

Source§

impl ViewModifier for OnPointerLeaveModifier

Source§

impl ViewModifier for OnPointerMoveModifier

Source§

impl ViewModifier for OnPointerUpModifier

Source§

impl ViewModifier for OpacityModifier

Source§

impl ViewModifier for OverlayModifier

Source§

impl ViewModifier for PaddingModifier

Source§

impl ViewModifier for SafeAreaModifier

Source§

impl ViewModifier for SleipnirModifier

Source§

impl ViewModifier for TransformModifier

Source§

impl ViewModifier for ZIndexModifier