pub struct UiRoot {
pub id: String,
pub root: Widget,
pub layout_root: LayoutNode,
pub needs_layout: bool,
}Expand description
Top-level UI tree. Build it, call layout, then [render] each frame.
Fields§
§id: String§root: Widget§layout_root: LayoutNode§needs_layout: boolImplementations§
Source§impl UiRoot
impl UiRoot
pub fn new(id: impl Into<String>, root: Widget) -> UiRoot
Sourcepub fn layout(&mut self, screen_w: f32, screen_h: f32)
pub fn layout(&mut self, screen_w: f32, screen_h: f32)
Recalculate layout. Call after changing the tree or on window resize.
Sourcepub fn render(&self, ctx: &GfxContext)
pub fn render(&self, ctx: &GfxContext)
Render the UI tree via yog-gfx draw2d.
Must be called from on_hud_render.
Sourcepub fn tooltip_at(&self, mx: f32, my: f32) -> Option<&str>
pub fn tooltip_at(&self, mx: f32, my: f32) -> Option<&str>
The tooltip of the innermost widget at (mx, my) that has one.
Call after Self::layout.
Sourcepub fn render_tooltip(ctx: &GfxContext, text: &str, mx: f32, my: f32)
pub fn render_tooltip(ctx: &GfxContext, text: &str, mx: f32, my: f32)
Draws text as a vanilla tooltip next to the cursor at (mx, my),
kept inside the screen. Call after Self::render so it’s on top.
Sourcepub fn hit_test(&self, mx: f32, my: f32) -> Option<&LayoutNode>
pub fn hit_test(&self, mx: f32, my: f32) -> Option<&LayoutNode>
Find the deepest clickable widget at (mx, my) in screen coordinates.
Sourcepub fn find_rect(&self, id: &str) -> Option<Rect>
pub fn find_rect(&self, id: &str) -> Option<Rect>
Resolved rect of the (first) node tagged id — see layout::find_by_id.
Call after Self::layout.
Sourcepub fn find_node(&self, id: &str) -> Option<&LayoutNode>
pub fn find_node(&self, id: &str) -> Option<&LayoutNode>
Laid-out node of the (first) widget tagged id — rect plus scroll
state, see layout::find_node. Call after Self::layout.
Auto Trait Implementations§
impl Freeze for UiRoot
impl RefUnwindSafe for UiRoot
impl Send for UiRoot
impl Sync for UiRoot
impl Unpin for UiRoot
impl UnsafeUnpin for UiRoot
impl UnwindSafe for UiRoot
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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
Mutably borrows from an owned value. Read more
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.