pub struct PaintCtx<'a> { /* private fields */ }
Expand description
A context passed to paint methods of widgets.
Implementations§
source§impl PaintCtx<'_>
impl PaintCtx<'_>
sourcepub fn skip_child(&self, child: &mut WidgetPod<impl Widget>)
pub fn skip_child(&self, child: &mut WidgetPod<impl Widget>)
Skip iterating over the given child.
Normally, container widgets are supposed to iterate over each of their child widgets in their methods. By default, the framework treats not doing so as a mistake, and panics if debug assertions are on.
This tells the framework that a child was deliberately skipped.
source§impl PaintCtx<'_>
impl PaintCtx<'_>
sourcepub fn size(&self) -> Size
pub fn size(&self) -> Size
The layout size.
This is the layout size as ultimately determined by the parent container, on the previous layout pass.
Generally it will be the same as the size returned by the child widget’s
layout
method.
sourcepub fn window_origin(&self) -> Point
pub fn window_origin(&self) -> Point
The origin of the widget in window coordinates, relative to the top left corner of the content area.
sourcepub fn to_window(&self, widget_point: Point) -> Point
pub fn to_window(&self, widget_point: Point) -> Point
Convert a point from the widget’s coordinate space to the window’s.
The returned point is relative to the content area; it excludes window chrome.
sourcepub fn is_hot(&self) -> bool
pub fn is_hot(&self) -> bool
The “hot” (aka hover) status of a widget.
A widget is “hot” when the mouse is hovered over it. Widgets will often change their appearance as a visual indication that they will respond to mouse interaction.
The hot status is computed from the widget’s layout rect. In a container hierarchy, all widgets with layout rects containing the mouse position have hot status.
Discussion: there is currently some confusion about whether a widget can be considered hot when some other widget is active (for example, when clicking to one widget and dragging to the next). The documentation should clearly state the resolution.
sourcepub fn is_active(&self) -> bool
pub fn is_active(&self) -> bool
The active status of a widget.
Active status generally corresponds to a mouse button down. Widgets
with behavior similar to a button will call set_active
on mouse
down and then up.
When a widget is active, it gets mouse events even when the mouse is dragged away.
sourcepub fn is_focused(&self) -> bool
pub fn is_focused(&self) -> bool
The focus status of a widget.
Returns true
if this specific widget is focused.
To check if any descendants are focused use has_focus
.
Focus means that the widget receives keyboard events.
A widget can request focus using the request_focus
method.
It’s also possible to register for automatic focus via register_for_focus
.
If a widget gains or loses focus it will get a LifeCycle::FocusChanged
event.
Only one widget at a time is focused. However due to the way events are routed, all ancestors of that widget will also receive keyboard events.
sourcepub fn has_focus(&self) -> bool
pub fn has_focus(&self) -> bool
The (tree) focus status of a widget.
Returns true
if either this specific widget or any one of its descendants is focused.
To check if only this specific widget is focused use is_focused
.
sourcepub fn is_disabled(&self) -> bool
pub fn is_disabled(&self) -> bool
The disabled state of a widget.
Returns true
if this widget or any of its ancestors is explicitly disabled.
To make this widget explicitly disabled use set_disabled
.
Disabled means that this widget should not change the state of the application. What
that means is not entirely clear but in any it should not change its data. Therefore
others can use this as a safety mechanism to prevent the application from entering an
illegal state.
For an example the decrease button of a counter of type usize
should be disabled if the
value is 0
.
sourcepub fn is_stashed(&self) -> bool
pub fn is_stashed(&self) -> bool
Check is widget is stashed.
Note: Stashed widgets are a WIP feature
source§impl PaintCtx<'_>
impl PaintCtx<'_>
sourcepub fn depth(&self) -> u32
pub fn depth(&self) -> u32
The depth in the tree of the currently painting widget.
This may be used in combination with paint_with_z_index
in order
to correctly order painting operations.
The depth
here may not be exact; it is only guaranteed that a child will
have a greater depth than its parent.