Enum PropertyTypeChangeFlag
#[repr(i32)]pub enum PropertyTypeChangeFlag {
FinalTransformation = 2,
Measure = 4,
ParentMeasure = 128,
Arrange = 8,
Render = 16,
Draw = 32,
Constraint = 262_144,
}Expand description
Each property type can have one or more change flags that indicate the effects of changing the value of that property. For example, when the Text property of a Text Block node changes, Kanzi must recalculate the layout of that Text Block, which is why the TextConcept::TextProperty has the PropertyTypeChangeFlagMeasure.
Variants§
FinalTransformation = 2
Use this flag for a property type that affects the final transformation of a node and its descendants.
For a 2D node, this flag causes Kanzi to:
- Run Node2D::updateRender on the node and its descendants. This updates the transformation of the nodes.
- Draw all nodes.
For a 3D node, this flag causes Kanzi to:
- Update the transformation of the node and its descendants.
- Draw all nodes.
For example, Node::ActualWidthProperty, Node2D::RenderTransformationProperty, and Node3D::RenderTransformationProperty use this flag.
Measure = 4
Use this flag for a property type that affects the size of the node as reported by the node itself, or the size and position of the node with respect to other nodes.
For a 2D node, this flag causes Kanzi to:
- Run Node2D::measure on the node.
- If the measured size of the node changed, run Node2D::measure on the parent of the node.
- If the measured size of the parent node changed, run Node2D::measure on the parent of the parent node, and so on.
- Run Node2D::arrange and Node2D::updateRender on the node, all the changed ancestor nodes, and their descendants. If the transform of a node changed, Node2D::updateRender recalculates the transformations.
- Draw all nodes.
For a 3D node, this flag causes Kanzi to:
- Run Node3D::measure on the node.
- If the measured size of the node changed, run Node3D::measure on the parent of the node.
- If the measured size of the parent node changed, run Node3D::measure on the parent of the parent node, and so on.
- Run Node3D::arrange on the node, all the changed ancestor nodes, and their descendants.
- Recalculate the transformations of the nodes.
- Draw all nodes.
For example, properties that set the size, margins, padding, and alignment of a node, use this flag.
ParentMeasure = 128
Use this flag for a property type that affects the layout of the parent node of a node. This flag causes Kanzi to set the PropertyTypeChangeFlagMeasure flag on the parent of the node.
For example, the DockLayoutConcept::SideProperty, GridLayoutConcept::ColumnProperty, and GridLayoutConcept::RowProperty use this flag.
Arrange = 8
Use this flag for a property type that affects the need to arrange the layout of a node.
For a 2D node, this flag causes Kanzi to:
- Run Node2D::arrange on the node and its descendants.
- Run Node2D::updateRender on the node and its descendants. If the transform of a node changed, Node2D::updateRender recalculates the transformation.
- Draw all nodes.
For a 3D node, this flag causes Kanzi to:
- Run Node3D::arrange on the node and its descendants.
- Recalculate the transformations of the node and its descendants.
- Draw all nodes.
All property types that have the PropertyTypeChangeFlagMeasure set, run the arrange phase on those nodes whose measurements changed.
Render = 16
Use this flag for a property type that changes the rendering parameters of a 2D node but does not affect the layout.
For a 2D node, this flag causes Kanzi to:
- Run Node2D::updateRender on the node and its descendants. If the transform of a node changed, Node2D::updateRender recalculates the transformation.
- Draw all nodes.
For a property type that changes the rendering parameters of a 3D node but does not affect the layout, use PropertyTypeChangeFlagDraw instead of PropertyTypeChangeFlagRender.
For example, these properties use the PropertyTypeChangeFlagRender flag:
- Node2D::RenderTransformationProperty and Node3D::RenderTransformationProperty
- Brush properties
- Properties of 2D effects, such as BlurEffect2D and MaskEffect2D
Draw = 32
Use this flag for a property type that affects the drawing of a node.
This flag causes Kanzi to draw all nodes.
For example, most material properties use this flag.
Constraint = 262_144
Property type with this flag informs that constraints are in use.
Implementations§
§impl PropertyTypeChangeFlag
impl PropertyTypeChangeFlag
pub fn as_str(self) -> &'static str
pub fn convert(num: i32) -> PropertyTypeChangeFlag
Trait Implementations§
§impl Clone for PropertyTypeChangeFlag
impl Clone for PropertyTypeChangeFlag
§fn clone(&self) -> PropertyTypeChangeFlag
fn clone(&self) -> PropertyTypeChangeFlag
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for PropertyTypeChangeFlag
impl Debug for PropertyTypeChangeFlag
§impl Display for PropertyTypeChangeFlag
impl Display for PropertyTypeChangeFlag
§impl PartialEq for PropertyTypeChangeFlag
impl PartialEq for PropertyTypeChangeFlag
§impl VariantConstraint for PropertyTypeChangeFlag
impl VariantConstraint for PropertyTypeChangeFlag
§type DataArg<'a> = PropertyTypeChangeFlag
type DataArg<'a> = PropertyTypeChangeFlag
Variant.
Generally, this type matches Self, except for KanziString, Resource, and ResourceId. Read more