pub struct PropertyEditorDefinitionContainer {
pub context_type_id: Mutex<RawMutex, TypeId>,
/* private fields */
}
Expand description
This is a list of PropertyEditorDefinition which is indexed by the type that each editor edits, as specified by PropertyEditorDefinition::value_type_id. It also records where each entry in the list came from so that it can know whether a property editor is built-in to the Fyroxed or whether it was added by a plugin. This allows entries to be removed when a plugin is unloaded.
Fields§
§context_type_id: Mutex<RawMutex, TypeId>
A type representing the source of PropertyEditorDefinitions that are added in the future.
For each added PropertyEditorDefinition entry, PropertyEditorDefinitionContainerEntry::source_type_id
is set equal to this TypeId. By default this begins as ().type_id()
, and then it can be modified
with a plugin is loaded to cause all definitions added after that point to be marked as being from
that plugin.
Implementations§
source§impl PropertyEditorDefinitionContainer
impl PropertyEditorDefinitionContainer
pub fn empty() -> PropertyEditorDefinitionContainer
sourcepub fn with_default_editors() -> PropertyEditorDefinitionContainer
pub fn with_default_editors() -> PropertyEditorDefinitionContainer
A container with property editors for Fyrox core types and Rust standard types.
sourcepub fn insert_raw(
&self,
definition: Box<dyn PropertyEditorDefinition>,
) -> Option<PropertyEditorDefinitionContainerEntry>
pub fn insert_raw( &self, definition: Box<dyn PropertyEditorDefinition>, ) -> Option<PropertyEditorDefinitionContainerEntry>
Add an already boxed dynamic PropertyEditorDefinition to the list. If this container already had a PropertyEditorDefinition for the same type, the old property editor is removed and returned.
sourcepub fn merge(&self, other: PropertyEditorDefinitionContainer)
pub fn merge(&self, other: PropertyEditorDefinitionContainer)
Consume a given collection of property editors and add each entry into this collection. Every entry from the given collection is marked as having the current source type; whatever sources they may have had in their original container is forgotten.
sourcepub fn insert<T>(
&self,
definition: T,
) -> Option<PropertyEditorDefinitionContainerEntry>where
T: PropertyEditorDefinition + 'static,
pub fn insert<T>(
&self,
definition: T,
) -> Option<PropertyEditorDefinitionContainerEntry>where
T: PropertyEditorDefinition + 'static,
Move a PropertyEditorDefinition into the list, where it will automatically be boxed. If this container already had a PropertyEditorDefinition for the same type, the old property editor is removed and returned.
sourcepub fn register_inheritable_vec_collection<T>(&self)where
T: CollectionItem + FieldValue,
pub fn register_inheritable_vec_collection<T>(&self)where
T: CollectionItem + FieldValue,
Inserts the default property editor for Vec<T>
and InheritableVariable<Vec<T>>
.
Panic if these types already have editor definitions.
sourcepub fn register_inheritable_inspectable<T>(&self)where
T: Reflect + FieldValue,
pub fn register_inheritable_inspectable<T>(&self)where
T: Reflect + FieldValue,
Insert a InspectablePropertyEditorDefinition for the given type. This is a creates a generic property editor that is just a nested inspector for the properties of the value, with an Expander to allow the inner inspector to be hidden.
A property editor definition for InheritableVariable<T>
is also inserted.
Panic if these types already have editor definitions.
sourcepub fn register_inheritable_enum<T, E>(&self)where
E: Debug,
T: InspectableEnum + FieldValue + VariantNames + AsRef<str> + FromStr<Err = E> + Debug,
pub fn register_inheritable_enum<T, E>(&self)where
E: Debug,
T: InspectableEnum + FieldValue + VariantNames + AsRef<str> + FromStr<Err = E> + Debug,
Insert property editor definitions to allow enum T to be edited
using a dropdown list, as well as InheritableVariable<T>
.
Panic if these types already have editor definitions.
sourcepub fn register_inheritable_option<T>(&self)
pub fn register_inheritable_option<T>(&self)
Insert property editor definitions to allow Option<T>
to be edited
as well as InheritableVariable<T>
.
Panic if these types already have editor definitions.
sourcepub fn definitions(
&self,
) -> RwLockReadGuard<'_, RawRwLock, HashMap<TypeId, PropertyEditorDefinitionContainerEntry, BuildHasherDefault<FxHasher>>>
pub fn definitions( &self, ) -> RwLockReadGuard<'_, RawRwLock, HashMap<TypeId, PropertyEditorDefinitionContainerEntry, BuildHasherDefault<FxHasher>>>
Direct read-only access to all the editor definitions.
sourcepub fn definitions_mut(
&self,
) -> RwLockWriteGuard<'_, RawRwLock, HashMap<TypeId, PropertyEditorDefinitionContainerEntry, BuildHasherDefault<FxHasher>>>
pub fn definitions_mut( &self, ) -> RwLockWriteGuard<'_, RawRwLock, HashMap<TypeId, PropertyEditorDefinitionContainerEntry, BuildHasherDefault<FxHasher>>>
Direct and unrestricted access to all the editor definitions.
Trait Implementations§
source§impl Default for PropertyEditorDefinitionContainer
impl Default for PropertyEditorDefinitionContainer
source§fn default() -> PropertyEditorDefinitionContainer
fn default() -> PropertyEditorDefinitionContainer
Auto Trait Implementations§
impl !Freeze for PropertyEditorDefinitionContainer
impl !RefUnwindSafe for PropertyEditorDefinitionContainer
impl Send for PropertyEditorDefinitionContainer
impl Sync for PropertyEditorDefinitionContainer
impl Unpin for PropertyEditorDefinitionContainer
impl !UnwindSafe for PropertyEditorDefinitionContainer
Blanket Implementations§
source§impl<T> AsyncTaskResult for T
impl<T> AsyncTaskResult for T
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> 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>
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>
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)
&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)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
source§impl<T> FieldValue for Twhere
T: 'static,
impl<T> FieldValue for Twhere
T: 'static,
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
source§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> Pointable for T
impl<T> Pointable for T
source§impl<T> ScriptMessagePayload for T
impl<T> ScriptMessagePayload for T
source§fn as_any_ref(&self) -> &(dyn Any + 'static)
fn as_any_ref(&self) -> &(dyn Any + 'static)
self
as &dyn Any
source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
self
as &dyn Any
source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read moresource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.