pub enum SystemCommand {
Show 18 variants
ActivateApp(ApplicationId),
CloseApp(ApplicationId),
LoadDataSource(DataSource),
ClearSourceAndItsStores(SmartChannelSource),
AddReceiver(Receiver<LogMsg>),
ResetViewer,
ClearActiveBlueprint,
ClearAndGenerateBlueprint,
ActivateRecording(StoreId),
CloseStore(StoreId),
CloseAllRecordings,
UpdateBlueprint(StoreId, Vec<Chunk>),
DropEntity(StoreId, EntityPath),
EnableInspectBlueprintTimeline(bool),
SetSelection(Item),
SetActiveTimeline {
rec_id: StoreId,
timeline: Timeline,
},
SetFocus(Item),
FileSaver(Box<dyn FnOnce() -> Result<PathBuf> + Send + 'static>),
}
Expand description
Commands used by internal system components
Variants§
ActivateApp(ApplicationId)
Make this the active application.
CloseApp(ApplicationId)
Close this app and all its recordings.
LoadDataSource(DataSource)
Load some data.
ClearSourceAndItsStores(SmartChannelSource)
Clear everything that came from this source, and close the source.
AddReceiver(Receiver<LogMsg>)
ResetViewer
Reset the Viewer
to the default state
ClearActiveBlueprint
Reset the Blueprint
to the default state
ClearAndGenerateBlueprint
Clear the blueprint and generate a new one
ActivateRecording(StoreId)
If this is a recording, switch to it.
CloseStore(StoreId)
Close a recording or blueprint (free its memory).
CloseAllRecordings
Close all stores and show the welcome screen again.
UpdateBlueprint(StoreId, Vec<Chunk>)
Update the blueprint with additional data
The StoreId
should generally be the currently selected blueprint
but is tracked manually to ensure self-consistency if the blueprint
is both modified and changed in the same frame.
DropEntity(StoreId, EntityPath)
Drop a specific entity from a store.
Also drops all recursive children.
The StoreId
should generally be the currently selected blueprint
but is tracked manually to ensure self-consistency if the blueprint
is both modified and changed in the same frame.
EnableInspectBlueprintTimeline(bool)
Show a timeline of the blueprint data.
SetSelection(Item)
Set the item selection.
SetActiveTimeline
Set the active timeline for the given recording.
SetFocus(Item)
Sets the focus to the given item.
The focused item is cleared out every frame. Focusing is triggered either explicitly by ui-elements saying so or by double-clicking on a button representing an item.
Unlike item selection, item focusing is not global state. It may however have stateful effects in certain views, e.g. the 3D view may follow the last focused item as it moves, or a frame may be highlighted for a few frames.
Just like selection highlighting, the exact behavior of focusing is up to the receiving views.
FileSaver(Box<dyn FnOnce() -> Result<PathBuf> + Send + 'static>)
Add a task, run on a background thread, that saves something to disk.
Trait Implementations§
source§impl Debug for SystemCommand
impl Debug for SystemCommand
source§impl<'_derivative_strum> From<&'_derivative_strum SystemCommand> for &'static str
impl<'_derivative_strum> From<&'_derivative_strum SystemCommand> for &'static str
source§fn from(x: &'_derivative_strum SystemCommand) -> &'static str
fn from(x: &'_derivative_strum SystemCommand) -> &'static str
source§impl From<SystemCommand> for &'static str
impl From<SystemCommand> for &'static str
source§fn from(x: SystemCommand) -> &'static str
fn from(x: SystemCommand) -> &'static str
Auto Trait Implementations§
impl !Freeze for SystemCommand
impl !RefUnwindSafe for SystemCommand
impl Send for SystemCommand
impl !Sync for SystemCommand
impl Unpin for SystemCommand
impl !UnwindSafe for SystemCommand
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> 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