Trait rui::View

source · []
pub trait View: Sealed + 'static {
    fn draw(&self, id: ViewId, args: &mut DrawArgs<'_>);
    fn layout(&self, id: ViewId, args: &mut LayoutArgs<'_>) -> LocalSize;

    fn access(
        &self,
        _id: ViewId,
        _cx: &mut Context,
        _nodes: &mut Vec<Node>
    ) -> Option<NodeId> { ... } fn commands(
        &self,
        _id: ViewId,
        _cx: &mut Context,
        _cmds: &mut Vec<CommandInfo>
    ) { ... } fn dirty(&self, _id: ViewId, _xform: LocalToWorld, _cx: &mut Context) { ... } fn gc(&self, _id: ViewId, _cx: &mut Context, _map: &mut Vec<ViewId>) { ... } fn hittest(
        &self,
        _id: ViewId,
        _pt: LocalPoint,
        _cx: &mut Context
    ) -> Option<ViewId> { ... } fn is_flexible(&self) -> bool { ... } fn process(
        &self,
        _event: &Event,
        _id: ViewId,
        _cx: &mut Context,
        _actions: &mut Vec<Box<dyn Any>>
    ) { ... } fn tid(&self) -> TypeId { ... } }
Expand description

Trait for the unit of UI composition.

Required Methods

Draws the view using vger.

Lays out subviews and return the size of the view.

sz is the available size for the view vger can be used to get text sizing

Note that we should probably have a separate text sizing interface so we don’t need a GPU and graphics context set up to test layout.

Provided Methods

Builds an AccessKit tree. The node ID for the subtree is returned. All generated nodes are accumulated.

Accumulates information about menu bar commands.

Determines dirty regions which need repainting.

Gets IDs for state currently in use.

Returns the topmost view which the point intersects.

For detecting flexible sized things in stacks.

Processes an event.

Returns the type ID of the underlying view.

Implementors