[][src]Struct druid::PaintCtx

pub struct PaintCtx<'a, 'b: 'a> {
    pub render_ctx: &'a mut Piet<'b>,
    pub window_id: WindowId,
    // some fields omitted
}

A context passed to paint methods of widgets.

Widgets paint their appearance by calling methods on the render_ctx, which PaintCtx derefs to for convenience. This struct is expected to grow, for example to include the "damage region" indicating that only a subset of the entire widget hierarchy needs repainting.

Fields

render_ctx: &'a mut Piet<'b>

The render context for actually painting.

window_id: WindowId

Methods

impl<'a, 'b: 'a> PaintCtx<'a, 'b>[src]

pub fn widget_id(&self) -> WidgetId[src]

get the WidgetId of the current widget.

pub fn is_hot(&self) -> bool[src]

Query the "hot" state of the widget.

See EventCtx::is_hot for additional information.

pub fn is_active(&self) -> bool[src]

Query the "active" state of the widget.

See EventCtx::is_active for additional information.

pub fn size(&self) -> Size[src]

Returns the layout size of the current widget.

See EventCtx::size for additional information.

pub fn is_focused(&self) -> bool[src]

Query the focus state of the widget.

This is true only if this widget has focus.

pub fn has_focus(&self) -> bool[src]

The focus status of a widget.

See has_focus.

pub fn region(&self) -> &Region[src]

Returns the currently visible Region.

pub fn with_child_ctx(
    &mut self,
    region: impl Into<Region>,
    f: impl FnOnce(&mut PaintCtx)
)
[src]

Creates a temporary PaintCtx with a new visible region, and calls the provided function with that PaintCtx.

This is used by containers to ensure that their children have the correct visible region given their layout.

pub fn with_save(&mut self, f: impl FnOnce(&mut PaintCtx))[src]

Saves the current context, executes the closures, and restores the context.

This is useful if you would like to transform or clip or otherwise modify the drawing context but do not want that modification to effect other widgets.

Examples

fn paint(&mut self, ctx: &mut PaintCtx, _data: &T, env: &Env) {
    let clip_rect = ctx.size().to_rect().inset(5.0);
    ctx.with_save(|ctx| {
        ctx.clip(clip_rect);
        ctx.stroke(clip_rect, &env.get(theme::PRIMARY_DARK), 5.0);
    });
}

pub fn paint_with_z_index(
    &mut self,
    z_index: u32,
    paint_func: impl FnOnce(&mut PaintCtx) + 'static
)
[src]

Allows to specify order for paint operations.

Larger z_index indicate that an operation will be executed later.

Methods from Deref<Target = Piet<'b>>

Trait Implementations

impl<'a, 'b: 'a> Deref for PaintCtx<'a, 'b>[src]

type Target = Piet<'b>

The resulting type after dereferencing.

impl<'a, 'b: 'a> DerefMut for PaintCtx<'a, 'b>[src]

Auto Trait Implementations

impl<'a, 'b> !RefUnwindSafe for PaintCtx<'a, 'b>

impl<'a, 'b> !Send for PaintCtx<'a, 'b>

impl<'a, 'b> !Sync for PaintCtx<'a, 'b>

impl<'a, 'b> Unpin for PaintCtx<'a, 'b> where
    'b: 'a, 

impl<'a, 'b> !UnwindSafe for PaintCtx<'a, 'b>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> RoundFrom<T> for T

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

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.