Module PropertyTypeChangeFlagEnums

PropertyTypeChangeFlag

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.

PropertyTypeChangeFlagFinalTransformation

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.

PropertyTypeChangeFlagMeasure

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.

PropertyTypeChangeFlagParentMeasure

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.

PropertyTypeChangeFlagArrange

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.

PropertyTypeChangeFlagRender

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

PropertyTypeChangeFlagDraw

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.

PropertyTypeChangeFlagConstraint

Property type with this flag informs that constraints are in use.