Xxxx databinding add boolean

Adding booleans to the list of view model primitives

Diffs=
e66e242c6 Xxxx databinding add boolean (#7456)

Co-authored-by: hernan <hernan@rive.app>
This commit is contained in:
bodymovin
2024-06-21 17:51:10 +00:00
parent 6d002300a6
commit 90b8c81f0e
9 changed files with 140 additions and 2 deletions

View File

@ -1 +1 @@
9cd8759a02aaa45684e80a8d77671c1536ab387d
e66e242c649e3e61f12a3adbd824bcd9a7525a53

View File

@ -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;

View File

@ -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<int> 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;
}
}
}

View File

@ -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<int> get coreTypes => {
ViewModelPropertyBooleanBase.typeKey,
ViewModelPropertyBase.typeKey,
ViewModelComponentBase.typeKey
};
}

View File

@ -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<CoreContext> core, int propertyKey) {
if (source?.coreType == ViewModelInstanceBooleanBase.typeKey) {
final sourceBoolean = source as ViewModelInstanceBoolean;
RiveCoreContext.setBool(core, propertyKey, sourceBoolean.propertyValue);
}
}
@override
void applyToSource(Core<CoreContext> core, int propertyKey) {
final value = RiveCoreContext.getBool(core, propertyKey);
final sourceBoolean = source as ViewModelInstanceBoolean;
sourceBoolean.propertyValue = value;
}
}

View File

@ -17,5 +17,9 @@ class ContextValueColor extends ContextValue {
}
@override
void applyToSource(Core<CoreContext> core, int propertyKey) {}
void applyToSource(Core<CoreContext> core, int propertyKey) {
final value = RiveCoreContext.getColor(core, propertyKey);
final sourceColor = source as ViewModelInstanceColor;
sourceColor.propertyValue = value;
}
}

View File

@ -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;
}
}
}

View File

@ -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);
}
}

View File

@ -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 {}