ClipBox

Struct ClipBox 

Source
pub struct ClipBox<T, W> { /* private fields */ }
Expand description

A widget exposing a rectangular view into its child, which can be used as a building block for widgets that scroll their child.

Implementations§

Source§

impl<T, W> ClipBox<T, W>

Source

pub fn constrain_vertical(self, constrain: bool) -> Self

Builder-style method for deciding whether to constrain the child vertically.

The default is false.

This setting affects how a ClipBox lays out its child.

  • When it is false (the default), the child does not receive any upper bound on its height: the idea is that the child can be as tall as it wants, and the viewport will somehow get moved around to see all of it.
  • When it is true, the viewport’s maximum height will be passed down as an upper bound on the height of the child, and the viewport will set its own height to be the same as its child’s height.
Source

pub fn constrain_horizontal(self, constrain: bool) -> Self

Builder-style method for deciding whether to constrain the child horizontally.

The default is false. See constrain_vertical for more details.

Source

pub fn content_must_fill(self, must_fill: bool) -> Self

Builder-style method to set whether the child must fill the view.

If false (the default) there is no minimum constraint on the child’s size. If true, the child is passed the same minimum constraints as the ClipBox.

Source

pub fn child(&self) -> &W

Returns a reference to the child widget.

Source

pub fn child_mut(&mut self) -> &mut W

Returns a mutable reference to the child widget.

Source

pub fn viewport(&self) -> Viewport

Returns a the viewport describing this ClipBox’s position.

Source

pub fn viewport_origin(&self) -> Point

Returns the origin of the viewport rectangle.

Source

pub fn viewport_size(&self) -> Size

Returns the size of the rectangular viewport into the child widget. To get the position of the viewport, see viewport_origin.

Source

pub fn content_size(&self) -> Size

Returns the size of the child widget.

Source

pub fn set_constrain_horizontal(&mut self, constrain: bool)

Set whether to constrain the child horizontally.

See constrain_vertical for more details.

Source

pub fn set_constrain_vertical(&mut self, constrain: bool)

Set whether to constrain the child vertically.

See constrain_vertical for more details.

Source

pub fn set_content_must_fill(&mut self, must_fill: bool)

Set whether the child’s size must be greater than or equal the size of the ClipBox.

See content_must_fill for more details.

Source§

impl<T, W: Widget<T>> ClipBox<T, W>

Source

pub fn managed(child: W) -> Self

Creates a new ClipBox wrapping child.

This method should only be used when creating your own widget, which uses ClipBox internally.

ClipBox will forward SCROLL_TO_VIEW notifications to its parent unchanged. In this case the parent has to handle said notification itself. By default the ClipBox will filter out SCROLL_TO_VIEW notifications which refer to areas not visible.

Source

pub fn unmanaged(child: W) -> Self

Creates a new unmanaged ClipBox wrapping child.

This method should be used when you are using ClipBox in the widget tree directly.

Source

pub fn pan_by<C: ChangeCtx>(&mut self, ctx: &mut C, delta: Vec2) -> bool

Pans by delta units.

Returns true if the scroll offset has changed.

Source

pub fn pan_to_visible<C: ChangeCtx>( &mut self, ctx: &mut C, region: Rect, ) -> bool

Pans the minimal distance to show the region.

If the target region is larger than the viewport, we will display the portion that fits, prioritizing the portion closest to the origin.

Source

pub fn pan_to_on_axis<C: ChangeCtx>( &mut self, ctx: &mut C, axis: Axis, position: f64, ) -> bool

Pan to this position on a particular axis.

Returns true if the scroll offset has changed.

Source

pub fn with_port<C: ChangeCtx, F: FnOnce(&mut C, &mut Viewport)>( &mut self, ctx: &mut C, f: F, ) -> bool

Modify the ClipBox’s viewport rectangle with a closure.

The provided callback function can modify its argument, and when it is done then this ClipBox will be modified to have the new viewport rectangle.

Trait Implementations§

Source§

impl<T: Data, W: Widget<T>> Widget<T> for ClipBox<T, W>

Source§

fn event( &mut self, ctx: &mut EventCtx<'_, '_>, event: &Event, data: &mut T, env: &Env, )

Handle an event. Read more
Source§

fn lifecycle( &mut self, ctx: &mut LifeCycleCtx<'_, '_>, event: &LifeCycle, data: &T, env: &Env, )

Handle a life cycle notification. Read more
Source§

fn update( &mut self, ctx: &mut UpdateCtx<'_, '_>, _old_data: &T, data: &T, env: &Env, )

Update the widget’s appearance in response to a change in the app’s Data or Env. Read more
Source§

fn layout( &mut self, ctx: &mut LayoutCtx<'_, '_>, bc: &BoxConstraints, data: &T, env: &Env, ) -> Size

Compute layout. Read more
Source§

fn paint(&mut self, ctx: &mut PaintCtx<'_, '_, '_>, data: &T, env: &Env)

Paint the widget appearance. Read more
Source§

fn compute_max_intrinsic( &mut self, axis: Axis, ctx: &mut LayoutCtx<'_, '_>, bc: &BoxConstraints, data: &T, env: &Env, ) -> f64

Computes max intrinsic/preferred dimension of a widget on the provided axis. Read more

Auto Trait Implementations§

§

impl<T, W> !Freeze for ClipBox<T, W>

§

impl<T, W> !RefUnwindSafe for ClipBox<T, W>

§

impl<T, W> !Send for ClipBox<T, W>

§

impl<T, W> !Sync for ClipBox<T, W>

§

impl<T, W> Unpin for ClipBox<T, W>
where W: Unpin, T: Unpin,

§

impl<T, W> !UnwindSafe for ClipBox<T, W>

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

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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

Source§

fn round_from(x: T) -> T

Performs the conversion.
Source§

impl<T, U> RoundInto<U> for T
where U: RoundFrom<T>,

Source§

fn round_into(self) -> U

Performs the conversion.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, W> TestWidgetExt<T> for W
where T: Data, W: Widget<T> + 'static,

Source§

fn record(self, recording: &Recording) -> Recorder<Self>

Available on non-WebAssembly only.
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<T, W> WidgetExt<T> for W
where T: Data, W: Widget<T> + 'static,

Source§

fn padding(self, insets: impl Into<KeyOrValue<Insets>>) -> Padding<T, Self>

Wrap this widget in a Padding widget with the given Insets. Read more
Source§

fn center(self) -> Align<T>

Wrap this widget in an Align widget, configured to center it.
Source§

fn align_left(self) -> Align<T>

Wrap this widget in an Align widget, configured to align left.
Source§

fn align_right(self) -> Align<T>

Wrap this widget in an Align widget, configured to align right.
Source§

fn align_vertical(self, align: UnitPoint) -> Align<T>

Wrap this widget in an Align widget, configured to align vertically.
Source§

fn align_horizontal(self, align: UnitPoint) -> Align<T>

Wrap this widget in an Align widget, configured to align horizontally.
Source§

fn fix_width(self, width: impl Into<KeyOrValue<f64>>) -> SizedBox<T>

Wrap this widget in a SizedBox with an explicit width.
Source§

fn fix_height(self, height: impl Into<KeyOrValue<f64>>) -> SizedBox<T>

Wrap this widget in a SizedBox with an explicit height.
Source§

fn fix_size( self, width: impl Into<KeyOrValue<f64>>, height: impl Into<KeyOrValue<f64>>, ) -> SizedBox<T>

Wrap this widget in an SizedBox with an explicit width and height
Source§

fn expand(self) -> SizedBox<T>

Wrap this widget in a SizedBox with an infinite width and height. Read more
Source§

fn expand_width(self) -> SizedBox<T>

Wrap this widget in a SizedBox with an infinite width. Read more
Source§

fn expand_height(self) -> SizedBox<T>

Wrap this widget in a SizedBox with an infinite width. Read more
Source§

fn background(self, brush: impl Into<BackgroundBrush<T>>) -> Container<T>

Wrap this widget in a Container with the provided background brush. Read more
Source§

fn foreground(self, brush: impl Into<BackgroundBrush<T>>) -> Container<T>

Wrap this widget in a Container with the provided foreground brush. Read more
Source§

fn border( self, color: impl Into<KeyOrValue<Color>>, width: impl Into<KeyOrValue<f64>>, ) -> Container<T>

Wrap this widget in a Container with the given border. Read more
Source§

fn env_scope(self, f: impl Fn(&mut Env, &T) + 'static) -> EnvScope<T, Self>

Wrap this widget in a EnvScope widget, modifying the parent Env with the provided closure.
Source§

fn controller<C: Controller<T, Self>>( self, controller: C, ) -> ControllerHost<Self, C>

Wrap this widget with the provided Controller.
Source§

fn on_added( self, f: impl Fn(&mut Self, &mut LifeCycleCtx<'_, '_>, &T, &Env) + 'static, ) -> ControllerHost<Self, Added<T, Self>>

Provide a closure that will be called when this widget is added to the widget tree. Read more
Source§

fn on_click( self, f: impl Fn(&mut EventCtx<'_, '_>, &mut T, &Env) + 'static, ) -> ControllerHost<Self, Click<T>>

Control the events of this widget with a Click widget. The closure provided will be called when the widget is clicked with the left mouse button. Read more
Source§

fn debug_paint_layout(self) -> EnvScope<T, Self>

Draw the layout Rects of this widget and its children.
Source§

fn debug_widget_id(self) -> EnvScope<T, Self>

Display the WidgetIds for this widget and its children, when hot. Read more
Source§

fn debug_invalidation(self) -> DebugInvalidation<T, Self>

Draw a color-changing rectangle over this widget, allowing you to see the invalidation regions.
Source§

fn debug_widget(self) -> EnvScope<T, Self>

Set the DEBUG_WIDGET env variable for this widget (and its descendants). Read more
Source§

fn lens<S: Data, L: Lens<S, T>>(self, lens: L) -> LensWrap<S, T, L, Self>

Wrap this widget in a LensWrap widget for the provided Lens.
Source§

fn with_id(self, id: WidgetId) -> IdentityWrapper<Self>

Assign the widget a specific WidgetId. Read more
Source§

fn boxed(self) -> Box<dyn Widget<T>>

Wrap this widget in a Box.
Source§

fn scroll(self) -> Scroll<T, Self>

Wrap this widget in a Scroll widget.
Source§

fn disabled_if( self, disabled_if: impl Fn(&T, &Env) -> bool + 'static, ) -> DisabledIf<T, Self>

Wrap this widget in a DisabledIf widget. Read more
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