Struct re_blueprint_tree::BlueprintTree
source · pub struct BlueprintTree {
blueprint_tree_scroll_to_item: Option<Item>,
candidate_drop_parent_container_id: Option<ContainerId>,
next_candidate_drop_parent_container_id: Option<ContainerId>,
filter_state: FilterState,
filter_state_app_id: Option<ApplicationId>,
range_selection_anchor_item: Option<Item>,
}
Expand description
Holds the state of the blueprint tree UI.
Fields§
§blueprint_tree_scroll_to_item: Option<Item>
The item that should be focused on in the blueprint tree.
Set at each frame by Self::tree_ui
. This is similar to
[ViewerContext::focused_item
] but account for how specifically the blueprint tree should
handle the focused item.
candidate_drop_parent_container_id: Option<ContainerId>
Current candidate parent container for the ongoing drop. Should be drawn with special highlight.
See Self::is_candidate_drop_parent_container
for details.
next_candidate_drop_parent_container_id: Option<ContainerId>
Candidate parent container to be drawn on the next frame.
We double-buffer this value to deal with ordering constraints.
filter_state: FilterState
State of the entity filter widget.
filter_state_app_id: Option<ApplicationId>
The store id the filter widget relates to.
Used to invalidate the filter state (aka deactivate it) when the user switches to a recording with a different application id.
range_selection_anchor_item: Option<Item>
Range selection anchor item.
This is the item we used as a starting point for range selection. It is set and remembered everytime the user clicks on an item without holding shift.
Implementations§
source§impl BlueprintTree
impl BlueprintTree
sourcepub fn activate_filter(&mut self, query: &str)
pub fn activate_filter(&mut self, query: &str)
Activates the search filter (for e.g. test purposes).
sourcepub fn show(
&mut self,
ctx: &ViewerContext<'_>,
viewport_blueprint: &ViewportBlueprint,
ui: &mut Ui,
)
pub fn show( &mut self, ctx: &ViewerContext<'_>, viewport_blueprint: &ViewportBlueprint, ui: &mut Ui, )
Show the Blueprint section of the left panel based on the current ViewportBlueprint
sourcefn tree_ui(
&mut self,
ctx: &ViewerContext<'_>,
viewport_blueprint: &ViewportBlueprint,
ui: &mut Ui,
)
fn tree_ui( &mut self, ctx: &ViewerContext<'_>, viewport_blueprint: &ViewportBlueprint, ui: &mut Ui, )
Show the blueprint panel tree view.
sourcefn root_container_ui(
&mut self,
ctx: &ViewerContext<'_>,
viewport_blueprint: &ViewportBlueprint,
blueprint_tree_data: &BlueprintTreeData,
ui: &mut Ui,
container_data: &ContainerData,
)
fn root_container_ui( &mut self, ctx: &ViewerContext<'_>, viewport_blueprint: &ViewportBlueprint, blueprint_tree_data: &BlueprintTreeData, ui: &mut Ui, container_data: &ContainerData, )
Display the root container.
The root container is different from other containers in that it cannot be removed or dragged, and it cannot be collapsed, so it’s drawn without a collapsing triangle.
fn contents_ui( &mut self, ctx: &ViewerContext<'_>, viewport_blueprint: &ViewportBlueprint, blueprint_tree_data: &BlueprintTreeData, ui: &mut Ui, contents_data: &ContentsData, parent_visible: bool, )
fn container_ui( &mut self, ctx: &ViewerContext<'_>, viewport_blueprint: &ViewportBlueprint, blueprint_tree_data: &BlueprintTreeData, ui: &mut Ui, container_data: &ContainerData, parent_visible: bool, )
fn view_ui( &mut self, ctx: &ViewerContext<'_>, viewport_blueprint: &ViewportBlueprint, blueprint_tree_data: &BlueprintTreeData, ui: &mut Ui, view_data: &ViewData, container_visible: bool, )
fn data_result_ui( &mut self, ctx: &ViewerContext<'_>, viewport_blueprint: &ViewportBlueprint, blueprint_tree_data: &BlueprintTreeData, ui: &mut Ui, data_result_data: &DataResultData, view_visible: bool, )
fn handle_interactions_for_item( &mut self, ctx: &ViewerContext<'_>, viewport_blueprint: &ViewportBlueprint, blueprint_tree_data: &BlueprintTreeData, ui: &Ui, item: Item, response: &Response, )
sourcefn handle_range_selection(
&mut self,
ctx: &ViewerContext<'_>,
blueprint_tree_data: &BlueprintTreeData,
item: Item,
response: &Response,
)
fn handle_range_selection( &mut self, ctx: &ViewerContext<'_>, blueprint_tree_data: &BlueprintTreeData, item: Item, response: &Response, )
Handle setting/extending the selection based on shift-clicking.
sourcefn items_in_range(
ctx: &ViewerContext<'_>,
blueprint_tree_data: &BlueprintTreeData,
collapse_scope: CollapseScope,
anchor_item: &Item,
shift_clicked_item: &Item,
) -> Vec<Item>
fn items_in_range( ctx: &ViewerContext<'_>, blueprint_tree_data: &BlueprintTreeData, collapse_scope: CollapseScope, anchor_item: &Item, shift_clicked_item: &Item, ) -> Vec<Item>
Selects a range of items in the blueprint tree.
This method selects all [Item
]s displayed between the provided shift-clicked item and the
existing last-clicked item (if any). It takes into account the collapsed state, so only
actually visible items may be selected.
sourcefn scroll_to_me_if_needed(&self, ui: &Ui, item: &Item, response: &Response)
fn scroll_to_me_if_needed(&self, ui: &Ui, item: &Item, response: &Response)
Check if the provided item should be scrolled to.
fn handle_root_container_drag_and_drop_interaction( &mut self, ctx: &ViewerContext<'_>, viewport: &ViewportBlueprint, ui: &Ui, contents: Contents, response: &Response, )
fn handle_drag_and_drop_interaction( &mut self, ctx: &ViewerContext<'_>, viewport: &ViewportBlueprint, ui: &Ui, contents: Contents, response: &Response, body_response: Option<&Response>, )
fn handle_empty_space_drag_and_drop_interaction( &mut self, ctx: &ViewerContext<'_>, viewport: &ViewportBlueprint, ui: &Ui, empty_space: Rect, )
fn handle_contents_drop_target( &mut self, ctx: &ViewerContext<'_>, viewport: &ViewportBlueprint, ui: &Ui, dragged_contents: &[Contents], drop_target: &DropTarget<Contents>, )
sourcefn is_candidate_drop_parent_container(&self, container_id: &ContainerId) -> bool
fn is_candidate_drop_parent_container(&self, container_id: &ContainerId) -> bool
Is the provided container the current candidate parent container for the ongoing drag?
When a drag is in progress, the candidate parent container for the dragged item should be highlighted. Note that this can happen when hovering said container, its direct children, or even the item just after it.
pub fn collapse_scope(&self) -> CollapseScope
sourcefn handle_focused_item(
&self,
ctx: &ViewerContext<'_>,
viewport: &ViewportBlueprint,
ui: &Ui,
focused_item: &Item,
) -> Option<Item>
fn handle_focused_item( &self, ctx: &ViewerContext<'_>, viewport: &ViewportBlueprint, ui: &Ui, focused_item: &Item, ) -> Option<Item>
Expand all required items and compute which item we should scroll to.
sourcefn expand_all_contents_until(
&self,
viewport: &ViewportBlueprint,
egui_ctx: &Context,
focused_contents: &Contents,
)
fn expand_all_contents_until( &self, viewport: &ViewportBlueprint, egui_ctx: &Context, focused_contents: &Contents, )
Expand all containers until reaching the provided content.
sourcefn expand_all_data_results_until(
&self,
ctx: &ViewerContext<'_>,
egui_ctx: &Context,
view_id: &ViewId,
entity_path: &EntityPath,
)
fn expand_all_data_results_until( &self, ctx: &ViewerContext<'_>, egui_ctx: &Context, view_id: &ViewId, entity_path: &EntityPath, )
Expand data results of the provided view all the way to the provided entity.
Trait Implementations§
source§impl Default for BlueprintTree
impl Default for BlueprintTree
source§fn default() -> BlueprintTree
fn default() -> BlueprintTree
Auto Trait Implementations§
impl Freeze for BlueprintTree
impl RefUnwindSafe for BlueprintTree
impl Send for BlueprintTree
impl Sync for BlueprintTree
impl Unpin for BlueprintTree
impl UnwindSafe for BlueprintTree
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> Conv for T
impl<T> Conv for T
§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
source§impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere
Dst: LosslessTryFrom<Src>,
impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere
Dst: LosslessTryFrom<Src>,
source§fn lossless_try_into(self) -> Option<Dst>
fn lossless_try_into(self) -> Option<Dst>
source§impl<Src, Dst> LossyInto<Dst> for Srcwhere
Dst: LossyFrom<Src>,
impl<Src, Dst> LossyInto<Dst> for Srcwhere
Dst: LossyFrom<Src>,
source§fn lossy_into(self) -> Dst
fn lossy_into(self) -> Dst
§impl<T> NoneValue for Twhere
T: Default,
impl<T> NoneValue for Twhere
T: Default,
type NoneType = T
§fn null_value() -> T
fn null_value() -> T
source§impl<T> OverflowingAs for T
impl<T> OverflowingAs for T
source§fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
source§impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
source§fn overflowing_cast_from(src: Src) -> (Dst, bool)
fn overflowing_cast_from(src: Src) -> (Dst, bool)
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<T> SaturatingAs for T
impl<T> SaturatingAs for T
source§fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
source§impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
source§fn saturating_cast_from(src: Src) -> Dst
fn saturating_cast_from(src: Src) -> Dst
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.