From: Chihun Jeong <50663828+ANZ1217@users.noreply.github.com> Date: Thu, 8 May 2025 05:01:01 +0000 (+0900) Subject: [NUI] Add StartOffset of GradientVisual X-Git-Tag: submit/tizen/20250508.073039~1^2~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=83c7749189de615ca9a3f78b965b21e72e6daa05;p=platform%2Fcore%2Fcsapi%2Ftizenfx.git [NUI] Add StartOffset of GradientVisual ### Description of Change ### Add StartOffset of GradientVisual. Start offset is the offset value that shifts the starting position of the gradient. 0.0 is start position of gradient, 1.0 is end position of gradient. It is possible to set the startOffset outside the [0, 1] range. For example, you can animate it from 0.5 to 1.5. How to use: Animation anim = new Animation(1000); anim.AnimateTo(bgView, "gradient.StartOffset", 1.0f); anim.Play(); --- diff --git a/src/Tizen.NUI/src/internal/Common/PropertyHelper.cs b/src/Tizen.NUI/src/internal/Common/PropertyHelper.cs index f5a23b5bb..6efae8ec4 100755 --- a/src/Tizen.NUI/src/internal/Common/PropertyHelper.cs +++ b/src/Tizen.NUI/src/internal/Common/PropertyHelper.cs @@ -53,6 +53,7 @@ namespace Tizen.NUI { "imageShadow.Offset", new VisualPropertyData(View.Property.SHADOW, (int)VisualTransformPropertyType.Offset) }, { "shadow.CornerRadius", new VisualPropertyData(View.Property.SHADOW, Visual.Property.CornerRadius, ObjectIntToFloat) }, { "shadow.CornerSquareness", new VisualPropertyData(View.Property.SHADOW, Visual.Property.CornerSquareness, ObjectIntToFloat) }, + { "gradient.StartOffset", new VisualPropertyData(View.Property.BACKGROUND, GradientVisualProperty.StartOffset, ObjectIntToFloat) }, }; private static readonly Dictionary visualPropertyUpperCaseTable = new Dictionary() { diff --git a/src/Tizen.NUI/src/internal/Interop/Interop.GradientVisual.cs b/src/Tizen.NUI/src/internal/Interop/Interop.GradientVisual.cs index 5bddf6360..bc3ec5846 100755 --- a/src/Tizen.NUI/src/internal/Interop/Interop.GradientVisual.cs +++ b/src/Tizen.NUI/src/internal/Interop/Interop.GradientVisual.cs @@ -44,6 +44,8 @@ namespace Tizen.NUI [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_GRADIENT_VISUAL_SPREAD_METHOD_get")] public static extern int GradientVisualSpreadMethodGet(); + [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_GRADIENT_VISUAL_START_OFFSET_get")] + public static extern int GradientVisualStartOffsetGet(); } } } diff --git a/src/Tizen.NUI/src/internal/NativeBinding/NDalic.cs b/src/Tizen.NUI/src/internal/NativeBinding/NDalic.cs index 8e0d37d0f..63cb73344 100755 --- a/src/Tizen.NUI/src/internal/NativeBinding/NDalic.cs +++ b/src/Tizen.NUI/src/internal/NativeBinding/NDalic.cs @@ -367,6 +367,7 @@ namespace Tizen.NUI internal static readonly int GradientVisualStopColor = Interop.NDalicGradientVisual.GradientVisualStopColorGet(); internal static readonly int GradientVisualUnits = Interop.NDalicGradientVisual.GradientVisualUnitsGet(); internal static readonly int GradientVisualSpreadMethod = Interop.NDalicGradientVisual.GradientVisualSpreadMethodGet(); + internal static readonly int GradientVisualStartOffset = Interop.NDalicGradientVisual.GradientVisualStartOffsetGet(); internal static readonly int ImageVisualUrl = Interop.NDalicImageVisual.ImageVisualUrlGet(); internal static readonly int ImageVisualAlphaMaskUrl = Interop.NDalicImageVisual.ImageVisualAlphaMaskUrlGet(); diff --git a/src/Tizen.NUI/src/internal/XamlBinding/NUIConstantExtension.cs b/src/Tizen.NUI/src/internal/XamlBinding/NUIConstantExtension.cs index c01744d50..8ddc5b48e 100755 --- a/src/Tizen.NUI/src/internal/XamlBinding/NUIConstantExtension.cs +++ b/src/Tizen.NUI/src/internal/XamlBinding/NUIConstantExtension.cs @@ -54,6 +54,7 @@ namespace Tizen.NUI.Binding { "GradientVisualProperty.StopColor", GradientVisualProperty.StopColor }, { "GradientVisualProperty.Units", GradientVisualProperty.Units }, { "GradientVisualProperty.SpreadMethod", GradientVisualProperty.SpreadMethod }, + { "GradientVisualProperty.StartOffset", GradientVisualProperty.StartOffset }, // ImageVisualProperty { "ImageVisualProperty.URL", ImageVisualProperty.URL }, { "ImageVisualProperty.AlphaMaskURL", ImageVisualProperty.AlphaMaskURL }, diff --git a/src/Tizen.NUI/src/public/Visuals/GradientVisual.cs b/src/Tizen.NUI/src/public/Visuals/GradientVisual.cs index 1eaaf2c17..95a0dedda 100755 --- a/src/Tizen.NUI/src/public/Visuals/GradientVisual.cs +++ b/src/Tizen.NUI/src/public/Visuals/GradientVisual.cs @@ -15,6 +15,8 @@ * */ +using System.ComponentModel; + namespace Tizen.NUI { /// @@ -31,6 +33,7 @@ namespace Tizen.NUI private PropertyArray _stopColor; private GradientVisualUnitsType? _units; private GradientVisualSpreadMethodType? _spreadMethod; + private float? _startOffset; /// /// Default constructor of GradientVisual. @@ -190,6 +193,25 @@ namespace Tizen.NUI } } + /// + /// Gets or sets the gradient's start position offset.
+ /// If not supplied, the default is 0.0f.
+ /// Optional. + ///
+ [EditorBrowsable(EditorBrowsableState.Never)] + public float StartOffset + { + get + { + return _startOffset ?? (0.0f); + } + set + { + _startOffset = value; + UpdateVisual(); + } + } + /// /// Compose the out visual map. /// @@ -236,6 +258,11 @@ namespace Tizen.NUI { _outputVisualMap.Add(GradientVisualProperty.SpreadMethod, (int)_spreadMethod); } + + if (_startOffset != null) + { + _outputVisualMap.Add(GradientVisualProperty.StartOffset, (float)_startOffset); + } base.ComposingPropertyMap(); } } diff --git a/src/Tizen.NUI/src/public/Visuals/VisualConstants.cs b/src/Tizen.NUI/src/public/Visuals/VisualConstants.cs index f2e1436fa..e8492afa3 100755 --- a/src/Tizen.NUI/src/public/Visuals/VisualConstants.cs +++ b/src/Tizen.NUI/src/public/Visuals/VisualConstants.cs @@ -753,6 +753,11 @@ namespace Tizen.NUI ///
/// 3 public static readonly int SpreadMethod = NDalic.GradientVisualSpreadMethod; + /// + /// Sets the gradient's start position offset. + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly int StartOffset = NDalic.GradientVisualStartOffset; } ///