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

pub fn as_str(self) -> &'static str

pub fn convert(num: i32) -> PropertyTypeChangeFlag

Trait Implementations§

§

impl Clone for PropertyTypeChangeFlag

§

fn clone(&self) -> PropertyTypeChangeFlag

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for PropertyTypeChangeFlag

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Display for PropertyTypeChangeFlag

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl PartialEq for PropertyTypeChangeFlag

§

fn eq(&self, other: &PropertyTypeChangeFlag) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl VariantConstraint for PropertyTypeChangeFlag

§

type DataArg<'a> = PropertyTypeChangeFlag

Specifies the type of an argument that provides a value to Variant. Generally, this type matches Self, except for KanziString, Resource, and ResourceId. Read more
§

type RetArg = PropertyTypeChangeFlag

Specifies the type of the return value received from Variant. Generally, this type matches Self, except for Resource. Read more
§

fn as_arg(&self) -> <PropertyTypeChangeFlag as VariantConstraint>::DataArg<'_>

Converts Self to a type accepted by Variant::create or Object::set_property.
§

impl Copy for PropertyTypeChangeFlag

§

impl Eq for PropertyTypeChangeFlag

§

impl PropertyTypeConstraint for PropertyTypeChangeFlag

§

impl StructuralPartialEq for PropertyTypeChangeFlag

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> AsAny for T
where T: 'static,

§

fn as_any(&self) -> &(dyn Any + 'static)

§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Inherits<T> for T

§

fn upcast(self) -> Base

§

fn upcast_ref(&self) -> &Base

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.