diff --git a/.rive_head b/.rive_head index d6e407c..85b696c 100644 --- a/.rive_head +++ b/.rive_head @@ -1 +1 @@ -9cd8759a02aaa45684e80a8d77671c1536ab387d +e66e242c649e3e61f12a3adbd824bcd9a7525a53 diff --git a/lib/src/generated/rive_core_context.dart b/lib/src/generated/rive_core_context.dart index c8fa5c8..eeff22c 100644 --- a/lib/src/generated/rive_core_context.dart +++ b/lib/src/generated/rive_core_context.dart @@ -156,6 +156,7 @@ import 'package:rive/src/rive_core/viewmodel/data_enum_value.dart'; import 'package:rive/src/rive_core/viewmodel/viewmodel.dart'; import 'package:rive/src/rive_core/viewmodel/viewmodel_component.dart'; import 'package:rive/src/rive_core/viewmodel/viewmodel_instance.dart'; +import 'package:rive/src/rive_core/viewmodel/viewmodel_instance_boolean.dart'; import 'package:rive/src/rive_core/viewmodel/viewmodel_instance_color.dart'; import 'package:rive/src/rive_core/viewmodel/viewmodel_instance_enum.dart'; import 'package:rive/src/rive_core/viewmodel/viewmodel_instance_list.dart'; @@ -164,6 +165,7 @@ import 'package:rive/src/rive_core/viewmodel/viewmodel_instance_number.dart'; import 'package:rive/src/rive_core/viewmodel/viewmodel_instance_string.dart'; import 'package:rive/src/rive_core/viewmodel/viewmodel_instance_viewmodel.dart'; import 'package:rive/src/rive_core/viewmodel/viewmodel_property.dart'; +import 'package:rive/src/rive_core/viewmodel/viewmodel_property_boolean.dart'; import 'package:rive/src/rive_core/viewmodel/viewmodel_property_color.dart'; import 'package:rive/src/rive_core/viewmodel/viewmodel_property_enum.dart'; import 'package:rive/src/rive_core/viewmodel/viewmodel_property_list.dart'; @@ -197,12 +199,16 @@ class RiveCoreContext { return ViewModelPropertyViewModel(); case ViewModelInstanceBase.typeKey: return ViewModelInstance(); + case ViewModelPropertyBooleanBase.typeKey: + return ViewModelPropertyBoolean(); case DataEnumBase.typeKey: return DataEnum(); case ViewModelPropertyEnumBase.typeKey: return ViewModelPropertyEnum(); case ViewModelPropertyColorBase.typeKey: return ViewModelPropertyColor(); + case ViewModelInstanceBooleanBase.typeKey: + return ViewModelInstanceBoolean(); case ViewModelInstanceListBase.typeKey: return ViewModelInstanceList(); case ViewModelInstanceNumberBase.typeKey: @@ -519,6 +525,11 @@ class RiveCoreContext { object.enumId = value; } break; + case ViewModelInstanceBooleanBase.propertyValuePropertyKey: + if (object is ViewModelInstanceBooleanBase && value is bool) { + object.propertyValue = value; + } + break; case ViewModelInstanceNumberBase.propertyValuePropertyKey: if (object is ViewModelInstanceNumberBase && value is double) { object.propertyValue = value; @@ -2087,6 +2098,7 @@ class RiveCoreContext { static CoreFieldType? coreType(int propertyKey) { switch (propertyKey) { case ViewModelInstanceListItemBase.useLinkedArtboardPropertyKey: + case ViewModelInstanceBooleanBase.propertyValuePropertyKey: case TransformComponentConstraintBase.offsetPropertyKey: case TransformComponentConstraintBase.doesCopyPropertyKey: case TransformComponentConstraintBase.minPropertyKey: @@ -2440,6 +2452,8 @@ class RiveCoreContext { switch (propertyKey) { case ViewModelInstanceListItemBase.useLinkedArtboardPropertyKey: return (object as ViewModelInstanceListItemBase).useLinkedArtboard; + case ViewModelInstanceBooleanBase.propertyValuePropertyKey: + return (object as ViewModelInstanceBooleanBase).propertyValue; case TransformComponentConstraintBase.offsetPropertyKey: return (object as TransformComponentConstraintBase).offset; case TransformComponentConstraintBase.doesCopyPropertyKey: @@ -3131,6 +3145,11 @@ class RiveCoreContext { object.useLinkedArtboard = value; } break; + case ViewModelInstanceBooleanBase.propertyValuePropertyKey: + if (object is ViewModelInstanceBooleanBase) { + object.propertyValue = value; + } + break; case TransformComponentConstraintBase.offsetPropertyKey: if (object is TransformComponentConstraintBase) { object.offset = value; diff --git a/lib/src/generated/viewmodel/viewmodel_instance_boolean_base.dart b/lib/src/generated/viewmodel/viewmodel_instance_boolean_base.dart new file mode 100644 index 0000000..acd165a --- /dev/null +++ b/lib/src/generated/viewmodel/viewmodel_instance_boolean_base.dart @@ -0,0 +1,51 @@ +// Core automatically generated +// lib/src/generated/viewmodel/viewmodel_instance_boolean_base.dart. +// Do not modify manually. + +import 'package:rive/src/core/core.dart'; +import 'package:rive/src/generated/viewmodel/viewmodel_instance_value_base.dart'; +import 'package:rive/src/rive_core/viewmodel/viewmodel_instance_value.dart'; + +abstract class ViewModelInstanceBooleanBase extends ViewModelInstanceValue { + static const int typeKey = 449; + @override + int get coreType => ViewModelInstanceBooleanBase.typeKey; + @override + Set get coreTypes => { + ViewModelInstanceBooleanBase.typeKey, + ViewModelInstanceValueBase.typeKey + }; + + /// -------------------------------------------------------------------------- + /// PropertyValue field with key 593. + static const int propertyValuePropertyKey = 593; + static const bool propertyValueInitialValue = false; + bool _propertyValue = propertyValueInitialValue; + + /// The boolean value. + bool get propertyValue => _propertyValue; + + /// Change the [_propertyValue] field value. + /// [propertyValueChanged] will be invoked only if the field's value has + /// changed. + set propertyValue(bool value) { + if (_propertyValue == value) { + return; + } + bool from = _propertyValue; + _propertyValue = value; + if (hasValidated) { + propertyValueChanged(from, value); + } + } + + void propertyValueChanged(bool from, bool to); + + @override + void copy(Core source) { + super.copy(source); + if (source is ViewModelInstanceBooleanBase) { + _propertyValue = source._propertyValue; + } + } +} diff --git a/lib/src/generated/viewmodel/viewmodel_property_boolean_base.dart b/lib/src/generated/viewmodel/viewmodel_property_boolean_base.dart new file mode 100644 index 0000000..41b0414 --- /dev/null +++ b/lib/src/generated/viewmodel/viewmodel_property_boolean_base.dart @@ -0,0 +1,18 @@ +// Core automatically generated +// lib/src/generated/viewmodel/viewmodel_property_boolean_base.dart. +// Do not modify manually. + +import 'package:rive/src/generated/viewmodel/viewmodel_component_base.dart'; +import 'package:rive/src/rive_core/viewmodel/viewmodel_property.dart'; + +abstract class ViewModelPropertyBooleanBase extends ViewModelProperty { + static const int typeKey = 448; + @override + int get coreType => ViewModelPropertyBooleanBase.typeKey; + @override + Set get coreTypes => { + ViewModelPropertyBooleanBase.typeKey, + ViewModelPropertyBase.typeKey, + ViewModelComponentBase.typeKey + }; +} diff --git a/lib/src/rive_core/data_bind/context/context_value_boolean.dart b/lib/src/rive_core/data_bind/context/context_value_boolean.dart new file mode 100644 index 0000000..07a8265 --- /dev/null +++ b/lib/src/rive_core/data_bind/context/context_value_boolean.dart @@ -0,0 +1,25 @@ +import 'package:rive/src/core/core.dart'; +import 'package:rive/src/rive_core/data_bind/context/context_value.dart'; + +import 'package:rive/src/rive_core/viewmodel/viewmodel_instance_boolean.dart'; +import 'package:rive/src/rive_core/viewmodel/viewmodel_instance_value.dart'; + +class ContextValueBoolean extends ContextValue { + ContextValueBoolean(ViewModelInstanceValue? source) : super(source); + + @override + void apply(Core core, int propertyKey) { + if (source?.coreType == ViewModelInstanceBooleanBase.typeKey) { + final sourceBoolean = source as ViewModelInstanceBoolean; + + RiveCoreContext.setBool(core, propertyKey, sourceBoolean.propertyValue); + } + } + + @override + void applyToSource(Core core, int propertyKey) { + final value = RiveCoreContext.getBool(core, propertyKey); + final sourceBoolean = source as ViewModelInstanceBoolean; + sourceBoolean.propertyValue = value; + } +} diff --git a/lib/src/rive_core/data_bind/context/context_value_color.dart b/lib/src/rive_core/data_bind/context/context_value_color.dart index a7539e6..9e4eacd 100644 --- a/lib/src/rive_core/data_bind/context/context_value_color.dart +++ b/lib/src/rive_core/data_bind/context/context_value_color.dart @@ -17,5 +17,9 @@ class ContextValueColor extends ContextValue { } @override - void applyToSource(Core core, int propertyKey) {} + void applyToSource(Core core, int propertyKey) { + final value = RiveCoreContext.getColor(core, propertyKey); + final sourceColor = source as ViewModelInstanceColor; + sourceColor.propertyValue = value; + } } diff --git a/lib/src/rive_core/data_bind/data_bind.dart b/lib/src/rive_core/data_bind/data_bind.dart index d33cc4d..7bca7c5 100644 --- a/lib/src/rive_core/data_bind/data_bind.dart +++ b/lib/src/rive_core/data_bind/data_bind.dart @@ -1,9 +1,11 @@ import 'package:rive/src/generated/data_bind/data_bind_base.dart'; import 'package:rive/src/rive_core/component.dart'; import 'package:rive/src/rive_core/data_bind/context/context_value.dart'; +import 'package:rive/src/rive_core/data_bind/context/context_value_boolean.dart'; import 'package:rive/src/rive_core/data_bind/context/context_value_color.dart'; import 'package:rive/src/rive_core/data_bind/context/context_value_number.dart'; import 'package:rive/src/rive_core/data_bind/context/context_value_string.dart'; +import 'package:rive/src/rive_core/viewmodel/viewmodel_instance_boolean.dart'; import 'package:rive/src/rive_core/viewmodel/viewmodel_instance_color.dart'; import 'package:rive/src/rive_core/viewmodel/viewmodel_instance_enum.dart'; import 'package:rive/src/rive_core/viewmodel/viewmodel_instance_list.dart'; @@ -68,6 +70,9 @@ class DataBind extends DataBindBase { case ViewModelInstanceColorBase.typeKey: contextValue = ContextValueColor(source); break; + case ViewModelInstanceBooleanBase.typeKey: + contextValue = ContextValueBoolean(source); + break; } } } diff --git a/lib/src/rive_core/viewmodel/viewmodel_instance_boolean.dart b/lib/src/rive_core/viewmodel/viewmodel_instance_boolean.dart new file mode 100644 index 0000000..93646fa --- /dev/null +++ b/lib/src/rive_core/viewmodel/viewmodel_instance_boolean.dart @@ -0,0 +1,11 @@ +import 'package:rive/src/generated/viewmodel/viewmodel_instance_boolean_base.dart'; +import 'package:rive/src/rive_core/component_dirt.dart'; + +export 'package:rive/src/generated/viewmodel/viewmodel_instance_boolean_base.dart'; + +class ViewModelInstanceBoolean extends ViewModelInstanceBooleanBase { + @override + void propertyValueChanged(bool from, bool to) { + addDirt(ComponentDirt.bindings); + } +} diff --git a/lib/src/rive_core/viewmodel/viewmodel_property_boolean.dart b/lib/src/rive_core/viewmodel/viewmodel_property_boolean.dart new file mode 100644 index 0000000..040e4db --- /dev/null +++ b/lib/src/rive_core/viewmodel/viewmodel_property_boolean.dart @@ -0,0 +1,5 @@ +import 'package:rive/src/generated/viewmodel/viewmodel_property_boolean_base.dart'; + +export 'package:rive/src/generated/viewmodel/viewmodel_property_boolean_base.dart'; + +class ViewModelPropertyBoolean extends ViewModelPropertyBooleanBase {}