From: Eunki, Hong Date: Tue, 2 Jul 2024 08:14:27 +0000 (+0900) Subject: [NUI] Refine KeyFrames PropertyValues with propertyValueConverter X-Git-Tag: accepted/tizen/unified/20240711.051103~1^2~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fe0e554b07940e14b141663a7050a136e0fd4a9b;p=platform%2Fcore%2Fcsapi%2Ftizenfx.git [NUI] Refine KeyFrames PropertyValues with propertyValueConverter Let we allow to convert PropertyValue by propertyValueConverter when we use AnimateBetween keyword by KeyFrames. It will be useful when we animate some BackgroundColor or somethings with Integer value. Signed-off-by: Eunki, Hong --- diff --git a/src/Tizen.NUI/src/internal/Common/PropertyHelper.cs b/src/Tizen.NUI/src/internal/Common/PropertyHelper.cs index a63aa7d..8c5be95 100755 --- a/src/Tizen.NUI/src/internal/Common/PropertyHelper.cs +++ b/src/Tizen.NUI/src/internal/Common/PropertyHelper.cs @@ -294,18 +294,22 @@ namespace Tizen.NUI var refined = keyFrames; if (propertyValueConverter != null) { - // TODO Enable this code when csharp-binder is ready - // refined = new KeyFrames(); - // for (uint i = 0; i < keyFrames.Count; i++) - // { - // var keyFrame = keyFrames.GetKeyFrame(i); - // var newKeyFrame = propertyValueConverter(keyFrame); - // if (newKeyFrame == null) - // { - // return null; - // } - // refined.Add(newKeyFrame); - // } + uint keyFramesCount = keyFrames.GetKeyFrameCount(); + float keyFrameProgress; + using PropertyValue keyFrameValue = new PropertyValue(); + + refined = new KeyFrames(); + + for (uint i = 0; i < keyFramesCount; i++) + { + keyFrames.GetKeyFrame(i, out keyFrameProgress, keyFrameValue); + using var newKeyFrameValue = propertyValueConverter(keyFrameValue); + if (newKeyFrameValue == null) + { + return null; + } + refined.Add(keyFrameProgress, newKeyFrameValue); + } } return refined;