pub struct HierarchyPanel {
pub nodes: HashMap<NodeId, HierarchyNode>,
pub roots: Vec<NodeId>,
pub selected: Vec<NodeId>,
pub prefabs: HashMap<String, PrefabNode>,
pub drag_drop: DragDropState,
pub keyboard: KeyboardNavState,
pub search_query: String,
pub filter_kind: Option<NodeKind>,
/* private fields */
}Expand description
The scene hierarchy tree panel.
Fields§
§nodes: HashMap<NodeId, HierarchyNode>§roots: Vec<NodeId>§selected: Vec<NodeId>§prefabs: HashMap<String, PrefabNode>§drag_drop: DragDropState§keyboard: KeyboardNavState§search_query: String§filter_kind: Option<NodeKind>Implementations§
Source§impl HierarchyPanel
impl HierarchyPanel
pub fn new() -> Self
Sourcepub fn add_node(
&mut self,
name: impl Into<String>,
kind: NodeKind,
parent: Option<NodeId>,
) -> NodeId
pub fn add_node( &mut self, name: impl Into<String>, kind: NodeKind, parent: Option<NodeId>, ) -> NodeId
Add a new node, optionally parented to parent.
Sourcepub fn delete_recursive(&mut self, id: NodeId)
pub fn delete_recursive(&mut self, id: NodeId)
Remove a node and all its descendants.
pub fn rename(&mut self, id: NodeId, new_name: impl Into<String>)
Sourcepub fn reparent(&mut self, child: NodeId, new_parent: Option<NodeId>)
pub fn reparent(&mut self, child: NodeId, new_parent: Option<NodeId>)
Move child to be a child of new_parent (None = root).
Sourcepub fn duplicate_subtree(&mut self, id: NodeId) -> Option<NodeId>
pub fn duplicate_subtree(&mut self, id: NodeId) -> Option<NodeId>
Deep-clone id and all its descendants. Returns the new root.
pub fn expand_all(&mut self)
pub fn collapse_all(&mut self)
pub fn set_visible(&mut self, id: NodeId, visible: bool)
pub fn toggle_visible(&mut self, id: NodeId)
pub fn set_locked(&mut self, id: NodeId, locked: bool)
pub fn toggle_locked(&mut self, id: NodeId)
pub fn set_search(&mut self, query: impl Into<String>)
pub fn clear_search(&mut self)
pub fn set_kind_filter(&mut self, kind: Option<NodeKind>)
pub fn filter_by_name(&self, query: &str) -> Vec<NodeId>
pub fn filter_by_kind(&self, kind: NodeKind) -> Vec<NodeId>
pub fn select(&mut self, id: NodeId)
pub fn toggle_select(&mut self, id: NodeId)
Sourcepub fn range_select(&mut self, id: NodeId)
pub fn range_select(&mut self, id: NodeId)
Shift+click: select a contiguous range in the flat list.
pub fn select_all(&mut self)
pub fn deselect_all(&mut self)
pub fn is_selected(&self, id: NodeId) -> bool
pub fn make_prefab( &mut self, id: NodeId, prefab_name: impl Into<String>, ) -> String
pub fn instantiate_prefab( &mut self, prefab_name: &str, parent: Option<NodeId>, ) -> Option<NodeId>
Sourcepub fn group_selected(
&mut self,
group_name: impl Into<String>,
) -> Option<NodeId>
pub fn group_selected( &mut self, group_name: impl Into<String>, ) -> Option<NodeId>
Group selected nodes under a new Group node.
Sourcepub fn visible_flat_list(&mut self) -> &[NodeId]
pub fn visible_flat_list(&mut self) -> &[NodeId]
Returns the current flat list (rebuilds if stale).
pub fn undo(&mut self) -> bool
pub fn redo(&mut self) -> bool
Sourcepub fn keyboard_up(&mut self) -> Option<NodeId>
pub fn keyboard_up(&mut self) -> Option<NodeId>
Move keyboard focus up; returns the newly focused NodeId if any.
Sourcepub fn keyboard_down(&mut self) -> Option<NodeId>
pub fn keyboard_down(&mut self) -> Option<NodeId>
Move keyboard focus down.
Sourcepub fn keyboard_begin_rename(&mut self)
pub fn keyboard_begin_rename(&mut self)
Activate rename mode for the focused node.
Sourcepub fn keyboard_finish_rename(&mut self)
pub fn keyboard_finish_rename(&mut self)
Finish rename and apply.
Sourcepub fn keyboard_delete(&mut self)
pub fn keyboard_delete(&mut self)
Delete the focused node.
pub fn begin_drag(&mut self, id: NodeId, y: f32)
pub fn update_drag(&mut self, y: f32, hover: Option<NodeId>, pos: DropPosition)
pub fn finish_drag(&mut self)
pub fn render_ascii(&mut self) -> String
pub fn node_count(&self) -> usize
Trait Implementations§
Auto Trait Implementations§
impl Freeze for HierarchyPanel
impl RefUnwindSafe for HierarchyPanel
impl Send for HierarchyPanel
impl Sync for HierarchyPanel
impl Unpin for HierarchyPanel
impl UnsafeUnpin for HierarchyPanel
impl UnwindSafe for HierarchyPanel
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
Mutably borrows from an owned value. Read more
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
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.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.