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§
Provided Methods§
Sourcefn get_grid_placement(&self) -> Option<GridPlacement>
fn get_grid_placement(&self) -> Option<GridPlacement>
Returns the grid placement configuration if this modifier defines one.
Sourcefn render(&self, _renderer: &mut dyn Renderer, _rect: Rect)
fn render(&self, _renderer: &mut dyn Renderer, _rect: Rect)
Core rendering hook called before child views.
Sourcefn post_render(&self, _renderer: &mut dyn Renderer, _rect: Rect)
fn post_render(&self, _renderer: &mut dyn Renderer, _rect: Rect)
Cleanup hook called after child views.
Sourcefn render_view<V: View>(
&self,
view: &V,
renderer: &mut dyn Renderer,
rect: Rect,
)
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.
fn transform_rect(&self, rect: Rect) -> Rect
Sourcefn transform_proposal(&self, proposal: SizeProposal) -> SizeProposal
fn transform_proposal(&self, proposal: SizeProposal) -> SizeProposal
Allows a modifier to transform the layout proposal before it reaches the child.
Sourcefn transform_size(&self, size: Size) -> Size
fn transform_size(&self, size: Size) -> Size
Allows a modifier to transform the resulting size from the child.
Sourcefn measure_view<V: View>(
&self,
view: &V,
renderer: &mut dyn Renderer,
proposal: SizeProposal,
) -> Size
fn measure_view<V: View>( &self, view: &V, renderer: &mut dyn Renderer, proposal: SizeProposal, ) -> Size
Measure hook that coordinates size propagation.
Sourcefn child_flex_weight<V: View>(&self, view: &V) -> f32
fn child_flex_weight<V: View>(&self, view: &V) -> f32
Allows a modifier to override or pass through the child’s flex weight.
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".