pub struct UiStack {
pub id: Id,
pub info: UiStackInfo,
pub layout_direction: Direction,
pub min_rect: Rect,
pub max_rect: Rect,
pub parent: Option<Arc<UiStack>>,
}
Expand description
Information about a crate::Ui
and its parents.
UiStack
serves to keep track of the current hierarchy of crate::Ui
s, such
that nested widgets or user code may adapt to the surrounding context or obtain layout information
from a crate::Ui
that might be several steps higher in the hierarchy.
Note: since UiStack
contains a reference to its parent, it is both a stack, and a node within
that stack. Most of its methods are about the specific node, but some methods walk up the
hierarchy to provide information about the entire stack.
Fields§
§id: Id
§info: UiStackInfo
§layout_direction: Direction
§min_rect: Rect
§max_rect: Rect
§parent: Option<Arc<UiStack>>
Implementations§
§impl UiStack
impl UiStack
pub fn kind(&self) -> Option<UiKind>
pub fn frame(&self) -> &Frame
User tags.
pub fn is_panel_ui(&self) -> bool
pub fn is_panel_ui(&self) -> bool
Is this crate::Ui
a panel?
pub fn is_root_ui(&self) -> bool
pub fn is_root_ui(&self) -> bool
Is this a root crate::Ui
, i.e. created with crate::Ui::new()
?
pub fn has_visible_frame(&self) -> bool
pub fn has_visible_frame(&self) -> bool
This this crate::Ui
a crate::Frame
with a visible stroke?
§impl UiStack
impl UiStack
pub fn iter(&self) -> UiStackIterator<'_> ⓘ
pub fn iter(&self) -> UiStackIterator<'_> ⓘ
Return an iterator that walks the stack from this node to the root.
pub fn contained_in(&self, kind: UiKind) -> bool
pub fn contained_in(&self, kind: UiKind) -> bool
Check if this node is or is contained in a crate::Ui
of a specific kind.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for UiStack
impl !RefUnwindSafe for UiStack
impl Send for UiStack
impl Sync for UiStack
impl Unpin for UiStack
impl !UnwindSafe for UiStack
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CheckedAs for T
impl<T> CheckedAs for T
source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request