[NUI] Sync with dalihub & API5 branch (#631)
[platform/core/csapi/tizenfx.git] / src / Tizen.NUI / src / public / VisualMaps.cs
index 261a510..36589c1 100755 (executable)
@@ -1,5 +1,5 @@
 /*
- * Copyright(c) 2017 Samsung Electronics Co., Ltd.
+ * Copyright(c) 2018 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,7 +14,6 @@
  * limitations under the License.
  *
  */
-
 using System.Text;
 using System.Collections.Generic;
 using Tizen.NUI.BaseComponents;
@@ -28,6 +27,49 @@ namespace Tizen.NUI
     /// <since_tizen> 3 </since_tizen>
     public class VisualMap
     {
+        /// <summary>
+        /// outputVisualMap.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
+        protected PropertyMap _outputVisualMap = null;
+
+        /// <summary>
+        /// The shader of the visual.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
+        protected PropertyMap _shader = null;
+        //private PropertyMap _transform = null;
+
+        /// <summary>
+        /// The premultipliedAlpha of the visual.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
+        protected bool? _premultipliedAlpha = null;
+
+        /// <summary>
+        /// The mixColor of the Visual.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
+        protected Color _mixColor = null;
+
+        /// <summary>
+        /// The opacity of the visual.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
+        protected float? _opacity = null;
+
+        /// <summary>
+        /// The FittingMode of the visual.
+        /// </summary>
+        /// <since_tizen> 5 </since_tizen>
+        protected VisualFittingModeType? _visualFittingMode = null;
+
+        /// <summary>
+        /// The map for visual.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
+        protected PropertyMap _commonlyUsedMap = null;
+
         private Vector2 _visualSize = null;
         private Vector2 _visualOffset = null;
         private Vector2 _visualOffsetPolicy = null;
@@ -40,30 +82,6 @@ namespace Tizen.NUI
         private int? _depthIndex = null;
 
         /// <summary>
-        /// outputVisualMap.
-        /// </summary>
-        /// <since_tizen> 3 </since_tizen>
-        protected PropertyMap _outputVisualMap = null;
-
-        internal string Name
-        {
-            set;
-            get;
-        }
-
-        internal int VisualIndex
-        {
-            set;
-            get;
-        }
-
-        internal VisualView Parent
-        {
-            set;
-            get;
-        }
-
-        /// <summary>
         /// Constructor.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -448,17 +466,6 @@ namespace Tizen.NUI
             }
         }
 
-        private void ComposingTransformMap()
-        {
-            _visualTransformMap = new PropertyMap();
-            if (_visualSize != null) { _visualTransformMap.Add((int)VisualTransformPropertyType.Size, new PropertyValue(_visualSize)); }
-            if (_visualOffset != null) { _visualTransformMap.Add((int)VisualTransformPropertyType.Offset, new PropertyValue(_visualOffset)); }
-            if (_visualOffsetPolicy != null) { _visualTransformMap.Add((int)VisualTransformPropertyType.OffsetPolicy, new PropertyValue(_visualOffsetPolicy)); }
-            if (_visualSizePolicy != null) { _visualTransformMap.Add((int)VisualTransformPropertyType.SizePolicy, new PropertyValue(_visualSizePolicy)); }
-            if (_visualOrigin != null) { _visualTransformMap.Add((int)VisualTransformPropertyType.Origin, new PropertyValue((int)_visualOrigin)); }
-            if (_visualAnchorPoint != null) { _visualTransformMap.Add((int)VisualTransformPropertyType.AnchorPoint, new PropertyValue((int)_visualAnchorPoint)); }
-        }
-
         /// <summary>
         /// Gets the transform map used by the visual.
         /// </summary>
@@ -473,15 +480,6 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Compose the out visual map.
-        /// </summary>
-        /// <since_tizen> 3 </since_tizen>
-        protected virtual void ComposingPropertyMap()
-        {
-            _outputVisualMap = new PropertyMap();
-        }
-
-        /// <summary>
         /// Gets the property map to create the visual.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -494,49 +492,6 @@ namespace Tizen.NUI
             }
         }
 
-        internal void UpdateVisual()
-        {
-            if (VisualIndex > 0)
-            {
-                NUILog.Debug("UpdateVisual()! VisualIndex=" + VisualIndex);
-                Parent.UpdateVisual(VisualIndex, Name, this);
-            }
-            else
-            {
-                NUILog.Debug("VisualIndex was not set");
-            }
-        }
-
-        /// <summary>
-        /// The shader of the visual.
-        /// </summary>
-        /// <since_tizen> 3 </since_tizen>
-        protected PropertyMap _shader = null;
-        //private PropertyMap _transform = null;
-
-        /// <summary>
-        /// The premultipliedAlpha of the visual.
-        /// </summary>
-        /// <since_tizen> 3 </since_tizen>
-        protected bool? _premultipliedAlpha = null;
-
-        /// <summary>
-        /// The mixColor of the Visual.
-        /// </summary>
-        /// <since_tizen> 3 </since_tizen>
-        protected Color _mixColor = null;
-
-        /// <summary>
-        /// The opacity of the visual.
-        /// </summary>
-        /// <since_tizen> 3 </since_tizen>
-        protected float? _opacity = null;
-
-        /// <summary>
-        /// The map for visual.
-        /// </summary>
-        /// <since_tizen> 3 </since_tizen>
-        protected PropertyMap _commonlyUsedMap = null;
 
         /// <summary>
         /// The shader to use in the visual.
@@ -607,6 +562,92 @@ namespace Tizen.NUI
             }
         }
 
+        /// <summary>
+        /// The fitting mode of the visual.
+        /// The default is defined by the type of visual (if it is suitable to be stretched or not).
+        /// </summary>
+        /// <since_tizen> 5 </since_tizen>
+        public VisualFittingModeType VisualFittingMode
+        {
+            get
+            {
+                if (_visualFittingMode == null)
+                {
+                    if (this is AnimatedImageVisual ||
+                        this is MeshVisual ||
+                        this is PrimitiveVisual ||
+                        this is TextVisual)
+                    {
+                        return VisualFittingModeType.FitKeepAspectRatio;
+                    }
+                    else
+                    {
+                        return VisualFittingModeType.Fill;
+                    }
+                }
+                else
+                {
+                    return (VisualFittingModeType)_visualFittingMode;
+                }
+            }
+            set
+            {
+                _visualFittingMode = value;
+                UpdateVisual();
+            }
+        }
+
+        internal string Name
+        {
+            set;
+            get;
+        }
+
+        internal int VisualIndex
+        {
+            set;
+            get;
+        }
+
+        internal VisualView Parent
+        {
+            set;
+            get;
+        }
+
+        internal void UpdateVisual()
+        {
+            if (VisualIndex > 0)
+            {
+                NUILog.Debug("UpdateVisual()! VisualIndex=" + VisualIndex);
+                Parent.UpdateVisual(VisualIndex, Name, this);
+            }
+            else
+            {
+                NUILog.Debug("VisualIndex was not set");
+            }
+        }
+
+        /// <summary>
+        /// Compose the out visual map.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
+        protected virtual void ComposingPropertyMap()
+        {
+            _outputVisualMap = new PropertyMap();
+        }
+
+        private void ComposingTransformMap()
+        {
+            _visualTransformMap = new PropertyMap();
+            if (_visualSize != null) { _visualTransformMap.Add((int)VisualTransformPropertyType.Size, new PropertyValue(_visualSize)); }
+            if (_visualOffset != null) { _visualTransformMap.Add((int)VisualTransformPropertyType.Offset, new PropertyValue(_visualOffset)); }
+            if (_visualOffsetPolicy != null) { _visualTransformMap.Add((int)VisualTransformPropertyType.OffsetPolicy, new PropertyValue(_visualOffsetPolicy)); }
+            if (_visualSizePolicy != null) { _visualTransformMap.Add((int)VisualTransformPropertyType.SizePolicy, new PropertyValue(_visualSizePolicy)); }
+            if (_visualOrigin != null) { _visualTransformMap.Add((int)VisualTransformPropertyType.Origin, new PropertyValue((int)_visualOrigin)); }
+            if (_visualAnchorPoint != null) { _visualTransformMap.Add((int)VisualTransformPropertyType.AnchorPoint, new PropertyValue((int)_visualAnchorPoint)); }
+        }
+
     }
 
     /// <summary>
@@ -615,16 +656,9 @@ namespace Tizen.NUI
     /// <since_tizen> 3 </since_tizen>
     public class ImageVisual : VisualMap
     {
-        /// <summary>
-        /// Constructor.
-        /// </summary>
-        /// <since_tizen> 3 </since_tizen>
-        public ImageVisual() : base()
-        {
-        }
-
         private string _url = null;
         private string _alphaMaskUrl = null;
+        private string _auxiliaryImageUrl = null;
         private FittingModeType? _fittingMode = null;
         private SamplingModeType? _samplingMode = null;
         private int? _desiredWidth = null;
@@ -634,11 +668,21 @@ namespace Tizen.NUI
         private Vector4 _pixelArea = null;
         private WrapModeType? _wrapModeU = null;
         private WrapModeType? _wrapModeV = null;
+        private float? _auxiliaryImageAlpha = null;
         private float? _maskContentScale = null;
         private bool? _cropToMask = null;
         private ReleasePolicyType? _releasePolicy = null;
         private LoadPolicyType? _loadPolicy = null;
         private bool? _orientationCorrection = true;
+        private bool? _atlasing = false;
+
+        /// <summary>
+        /// Constructor.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
+        public ImageVisual() : base()
+        {
+        }
 
         /// <summary>
         /// Gets or sets the URL of the image.<br />
@@ -678,6 +722,24 @@ namespace Tizen.NUI
         }
 
         /// <summary>
+        /// Overlays the auxiliary image on top of an NPatch image.
+        /// The resulting visual image will be at least as large as the smallest possible n-patch or the auxiliary image, whichever is larger.
+        /// </summary>
+        /// <since_tizen> 5 </since_tizen>
+        public string AuxiliaryImageURL
+        {
+            get
+            {
+                return _auxiliaryImageUrl;
+            }
+            set
+            {
+                _auxiliaryImageUrl = value;
+                UpdateVisual();
+            }
+        }
+
+        /// <summary>
         /// Gets or sets fitting options used when resizing images to fit the desired dimensions.<br />
         /// If not supplied, the default is FittingModeType.ShrinkToFit.<br />
         /// For normal quad images only.<br />
@@ -896,10 +958,26 @@ namespace Tizen.NUI
             }
         }
 
+        /// <summary>
+        ///  An alpha value for mixing between the masked main NPatch image and the auxiliary image.
+        /// </summary>
+        /// <since_tizen> 5 </since_tizen>
+        public float AuxiliaryImageAlpha
+        {
+            get
+            {
+                return _auxiliaryImageAlpha ?? 1.0f;
+            }
+            set
+            {
+                _auxiliaryImageAlpha = value;
+                UpdateVisual();
+            }
+        }
 
         /// <summary>
-        /// Get or set the Image Visual release policy<br />
-        /// It decides if a texture should be released from the cache or kept to reduce loading time <br />
+        /// Gets or sets the Image Visual release policy.<br/>
+        /// It decides if a texture should be released from the cache or kept to reduce the loading time.<br/>
         /// </summary>
         /// <since_tizen> 5 </since_tizen>
         public ReleasePolicyType ReleasePolicy
@@ -917,8 +995,8 @@ namespace Tizen.NUI
 
 
         /// <summary>
-        /// Get or set the Image Visual image loading policy<br />
-        /// It decides if a texture should be loaded immediately after source set or only after visual is added to window <br />
+        /// Gets or sets the Image Visual image loading policy.<br />
+        /// It decides if a texture should be loaded immediately after source set or only after the visual is added to the window.<br />
         /// </summary>
         /// <since_tizen> 5 </since_tizen>
         public LoadPolicyType LoadPolicy
@@ -935,8 +1013,8 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Get or set whether to automatically correct the orientation based on exif data.<br />
-        /// If not specified, the default is true.<<br />
+        /// Gets or sets whether to automatically correct the orientation based on the Exchangeable Image File (EXIF) data.<br />
+        /// If not specified, the default is true.<br />
         /// For JPEG images only.<br />
         /// Optional.
         /// </summary>
@@ -954,6 +1032,23 @@ namespace Tizen.NUI
             }
         }
 
+        /// <summary>
+        /// Whether to use the texture atlas or not.
+        /// Optional. By default atlasing is off.
+        /// </summary>
+        /// <since_tizen> 5 </since_tizen>
+        public bool Atlasing
+        {
+            get
+            {
+                return _atlasing ?? (false);
+            }
+            set
+            {
+                _atlasing = value;
+                UpdateVisual();
+            }
+        }
 
         /// <summary>
         /// Compose the out visual map.
@@ -967,6 +1062,7 @@ namespace Tizen.NUI
                 _outputVisualMap.Add(Visual.Property.Type, new PropertyValue((int)Visual.Type.Image));
                 _outputVisualMap.Add(ImageVisualProperty.URL, new PropertyValue(_url));
                 if (_alphaMaskUrl != null ) { _outputVisualMap.Add(ImageVisualProperty.AlphaMaskURL, new PropertyValue(_alphaMaskUrl)); }
+                if (_auxiliaryImageUrl != null ) { _outputVisualMap.Add(ImageVisualProperty.AuxiliaryImageURL, new PropertyValue(_auxiliaryImageUrl)); }
                 if (_fittingMode != null) { _outputVisualMap.Add(ImageVisualProperty.FittingMode, new PropertyValue((int)_fittingMode)); }
                 if (_samplingMode != null) { _outputVisualMap.Add(ImageVisualProperty.SamplingMode, new PropertyValue((int)_samplingMode)); }
                 if (_desiredWidth != null) { _outputVisualMap.Add(ImageVisualProperty.DesiredWidth, new PropertyValue((int)_desiredWidth)); }
@@ -982,9 +1078,12 @@ namespace Tizen.NUI
                 if (_opacity != null) { _outputVisualMap.Add((int)Visual.Property.Opacity, new PropertyValue((float)_opacity)); }
                 if (_maskContentScale != null) { _outputVisualMap.Add((int)ImageVisualProperty.MaskContentScale, new PropertyValue((float)_maskContentScale)); }
                 if (_cropToMask != null) { _outputVisualMap.Add((int)ImageVisualProperty.CropToMask, new PropertyValue((bool)_cropToMask)); }
+                if (_auxiliaryImageAlpha != null) { _outputVisualMap.Add((int)ImageVisualProperty.AuxiliaryImageAlpha, new PropertyValue((float)_auxiliaryImageAlpha)); }
                 if (_releasePolicy != null) { _outputVisualMap.Add( ImageVisualProperty.ReleasePolicy , new PropertyValue((int)_releasePolicy)); }
                 if (_loadPolicy != null) { _outputVisualMap.Add( ImageVisualProperty.LoadPolicy, new PropertyValue((int)_loadPolicy)); }
                 if (_orientationCorrection != null) { _outputVisualMap.Add( ImageVisualProperty.OrientationCorrection, new PropertyValue((bool)_orientationCorrection)); }
+                if (_atlasing != null) { _outputVisualMap.Add( ImageVisualProperty.Atlasing, new PropertyValue((bool)_atlasing)); }
+                if (_visualFittingMode != null) { _outputVisualMap.Add((int)Visual.Property.VisualFittingMode, new PropertyValue((int)_visualFittingMode)); }
             }
         }
     }
@@ -995,14 +1094,6 @@ namespace Tizen.NUI
     /// <since_tizen> 3 </since_tizen>
     public class TextVisual : VisualMap
     {
-        /// <summary>
-        /// Constructor.
-        /// </summary>
-        /// <since_tizen> 3 </since_tizen>
-        public TextVisual() : base()
-        {
-        }
-
         private string _text = null;
         private string _fontFamily = null;
         private PropertyMap _fontStyle = null;
@@ -1012,6 +1103,18 @@ namespace Tizen.NUI
         private string _verticalAlignment = null;
         private Color _textColor = null;
         private bool? _enableMarkup = null;
+        private PropertyMap _shadow = null;
+        private PropertyMap _underline = null;
+        private PropertyMap _outline = null;
+        private PropertyMap _background = null;
+
+        /// <summary>
+        /// Constructor.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
+        public TextVisual() : base()
+        {
+        }
 
         /// <summary>
         /// Gets or sets the text to display in the UTF-8 format.<br />
@@ -1243,6 +1346,74 @@ namespace Tizen.NUI
         }
 
         /// <summary>
+        /// Gets or sets the shadow parameters.
+        /// </summary>
+        /// <since_tizen> 5 </since_tizen>
+        public PropertyMap Shadow
+        {
+            get
+            {
+                return _shadow;
+            }
+            set
+            {
+                _shadow = value;
+                UpdateVisual();
+            }
+        }
+
+        /// <summary>
+        /// Gets or sets the underline parameters.
+        /// </summary>
+        /// <since_tizen> 5 </since_tizen>
+        public PropertyMap Underline
+        {
+            get
+            {
+                return _underline;
+            }
+            set
+            {
+                _underline = value;
+                UpdateVisual();
+            }
+        }
+
+        /// <summary>
+        /// Gets or sets the outline parameters.
+        /// </summary>
+        /// <since_tizen> 5 </since_tizen>
+        public PropertyMap Outline
+        {
+            get
+            {
+                return _outline;
+            }
+            set
+            {
+                _outline = value;
+                UpdateVisual();
+            }
+        }
+
+        /// <summary>
+        /// Gets or sets the background parameters.
+        /// </summary>
+        /// <since_tizen> 5 </since_tizen>
+        public PropertyMap Background
+        {
+            get
+            {
+                return _background;
+            }
+            set
+            {
+                _background = value;
+                UpdateVisual();
+            }
+        }
+
+        /// <summary>
         /// Compose the out visual map.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -1265,6 +1436,11 @@ namespace Tizen.NUI
                 if (_premultipliedAlpha != null) { _outputVisualMap.Add((int)Visual.Property.PremultipliedAlpha, new PropertyValue((bool)_premultipliedAlpha)); }
                 if (_mixColor != null) { _outputVisualMap.Add((int)Visual.Property.MixColor, new PropertyValue(_mixColor)); }
                 if (_opacity != null) { _outputVisualMap.Add((int)Visual.Property.Opacity, new PropertyValue((float)_opacity)); }
+                if (_shadow != null) { _outputVisualMap.Add(TextVisualProperty.Shadow, new PropertyValue(_shadow)); }
+                if (_underline != null) { _outputVisualMap.Add(TextVisualProperty.Underline, new PropertyValue(_underline)); }
+                if (_outline != null) { _outputVisualMap.Add(TextVisualProperty.Outline, new PropertyValue(_outline)); }
+                if (_background != null) { _outputVisualMap.Add(TextVisualProperty.Background, new PropertyValue(_background)); }
+                if (_visualFittingMode != null) { _outputVisualMap.Add((int)Visual.Property.VisualFittingMode, new PropertyValue((int)_visualFittingMode)); }
             }
         }
     }
@@ -1275,6 +1451,10 @@ namespace Tizen.NUI
     /// <since_tizen> 3 </since_tizen>
     public class BorderVisual : VisualMap
     {
+        private Color _color = null;
+        private float? _size = null;
+        private bool? _antiAliasing = null;
+
         /// <summary>
         /// Constructor.
         /// </summary>
@@ -1283,10 +1463,6 @@ namespace Tizen.NUI
         {
         }
 
-        private Color _color = null;
-        private float? _size = null;
-        private bool? _antiAliasing = null;
-
         /// <summary>
         /// Gets or sets the color of the border.<br />
         /// Mandatory.
@@ -1359,6 +1535,7 @@ namespace Tizen.NUI
                 if (_premultipliedAlpha != null) { _outputVisualMap.Add((int)Visual.Property.PremultipliedAlpha, new PropertyValue((bool)_premultipliedAlpha)); }
                 if (_mixColor != null) { _outputVisualMap.Add((int)Visual.Property.MixColor, new PropertyValue(_mixColor)); }
                 if (_opacity != null) { _outputVisualMap.Add((int)Visual.Property.Opacity, new PropertyValue((float)_opacity)); }
+                if (_visualFittingMode != null) { _outputVisualMap.Add((int)Visual.Property.VisualFittingMode, new PropertyValue((int)_visualFittingMode)); }
             }
         }
     }
@@ -1369,6 +1546,9 @@ namespace Tizen.NUI
     /// <since_tizen> 3 </since_tizen>
     public class ColorVisual : VisualMap
     {
+        private Color _mixColorForColorVisual = null;
+        private bool? _renderIfTransparent = false;
+
         /// <summary>
         /// Constructor.
         /// </summary>
@@ -1377,8 +1557,6 @@ namespace Tizen.NUI
         {
         }
 
-        private Color _mixColorForColorVisual = null;
-
         /// <summary>
         /// Gets or sets the solid color required.<br />
         /// Mandatory.
@@ -1398,6 +1576,24 @@ namespace Tizen.NUI
         }
 
         /// <summary>
+        /// Gets or sets whether to render if the MixColor is transparent.
+        /// By default it is false, which means that the ColorVisual will not render if the MIX_COLOR is transparent.
+        /// </summary>
+        /// <since_tizen> 5 </since_tizen>
+        public bool RenderIfTransparent
+        {
+            get
+            {
+                return _renderIfTransparent ?? (false);
+            }
+            set
+            {
+                _renderIfTransparent = value;
+                UpdateVisual();
+            }
+        }
+
+        /// <summary>
         /// Compose the out visual map.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -1411,6 +1607,8 @@ namespace Tizen.NUI
                 if (_shader != null) { _outputVisualMap.Add((int)Visual.Property.Shader, new PropertyValue(_shader)); }
                 if (_premultipliedAlpha != null) { _outputVisualMap.Add((int)Visual.Property.PremultipliedAlpha, new PropertyValue((bool)_premultipliedAlpha)); }
                 if (_opacity != null) { _outputVisualMap.Add((int)Visual.Property.Opacity, new PropertyValue((float)_opacity)); }
+                if (_renderIfTransparent != null) { _outputVisualMap.Add(ColorVisualProperty.RenderIfTransparent, new PropertyValue((bool)_renderIfTransparent)); }
+                if (_visualFittingMode != null) { _outputVisualMap.Add((int)Visual.Property.VisualFittingMode, new PropertyValue((int)_visualFittingMode)); }
             }
         }
     }
@@ -1421,14 +1619,6 @@ namespace Tizen.NUI
     /// <since_tizen> 3 </since_tizen>
     public class GradientVisual : VisualMap
     {
-        /// <summary>
-        /// Constructor.
-        /// </summary>
-        /// <since_tizen> 3 </since_tizen>
-        public GradientVisual() : base()
-        {
-        }
-
         private Vector2 _startPosition = null;
         private Vector2 _endPosition = null;
         private Vector2 _center = null;
@@ -1439,6 +1629,14 @@ namespace Tizen.NUI
         private GradientVisualSpreadMethodType? _spreadMethod = null;
 
         /// <summary>
+        /// Constructor.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
+        public GradientVisual() : base()
+        {
+        }
+
+        /// <summary>
         /// Gets or sets the start position of a linear gradient.<br />
         /// Mandatory for linear.<br />
         /// </summary>
@@ -1610,6 +1808,7 @@ namespace Tizen.NUI
                 if (_premultipliedAlpha != null) { _outputVisualMap.Add((int)Visual.Property.PremultipliedAlpha, new PropertyValue((bool)_premultipliedAlpha)); }
                 if (_mixColor != null) { _outputVisualMap.Add((int)Visual.Property.MixColor, new PropertyValue(_mixColor)); }
                 if (_opacity != null) { _outputVisualMap.Add((int)Visual.Property.Opacity, new PropertyValue((float)_opacity)); }
+                if (_visualFittingMode != null) { _outputVisualMap.Add((int)Visual.Property.VisualFittingMode, new PropertyValue((int)_visualFittingMode)); }
             }
         }
     }
@@ -1620,14 +1819,6 @@ namespace Tizen.NUI
     /// <since_tizen> 3 </since_tizen>
     public class MeshVisual : VisualMap
     {
-        /// <summary>
-        /// Constructor.
-        /// </summary>
-        /// <since_tizen> 3 </since_tizen>
-        public MeshVisual() : base()
-        {
-        }
-
         private string _objectURL = null;
         private string _materialtURL = null;
         private string _texturesPath = null;
@@ -1637,6 +1828,14 @@ namespace Tizen.NUI
         private Vector3 _lightPosition = null;
 
         /// <summary>
+        /// Constructor.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
+        public MeshVisual() : base()
+        {
+        }
+
+        /// <summary>
         /// Gets or sets the location of the ".obj" file.<br />
         /// Mandatory.
         /// </summary>
@@ -1790,6 +1989,7 @@ namespace Tizen.NUI
                 if (_premultipliedAlpha != null) { _outputVisualMap.Add((int)Visual.Property.PremultipliedAlpha, new PropertyValue((bool)_premultipliedAlpha)); }
                 if (_mixColor != null) { _outputVisualMap.Add((int)Visual.Property.MixColor, new PropertyValue(_mixColor)); }
                 if (_opacity != null) { _outputVisualMap.Add((int)Visual.Property.Opacity, new PropertyValue((float)_opacity)); }
+                if (_visualFittingMode != null) { _outputVisualMap.Add((int)Visual.Property.VisualFittingMode, new PropertyValue((int)_visualFittingMode)); }
             }
         }
     }
@@ -1800,14 +2000,6 @@ namespace Tizen.NUI
     /// <since_tizen> 3 </since_tizen>
     public class PrimitiveVisual : VisualMap
     {
-        /// <summary>
-        /// Constructor.
-        /// </summary>
-        /// <since_tizen> 3 </since_tizen>
-        public PrimitiveVisual() : base()
-        {
-        }
-
         private PrimitiveVisualShapeType? _shape = null;
         private Color _mixColorForPrimitiveVisual = null;
         private int? _slices = null;
@@ -1822,6 +2014,14 @@ namespace Tizen.NUI
         private Vector3 _lightPosition = null;
 
         /// <summary>
+        /// Constructor.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
+        public PrimitiveVisual() : base()
+        {
+        }
+
+        /// <summary>
         /// Gets or sets the specific shape to render.<br />
         /// If not specified, the default is PrimitiveVisualShapeType.Sphere.<br />
         /// Optional.
@@ -2105,6 +2305,7 @@ namespace Tizen.NUI
             if (_shader != null) { _outputVisualMap.Add((int)Visual.Property.Shader, new PropertyValue(_shader)); }
             if (_premultipliedAlpha != null) { _outputVisualMap.Add((int)Visual.Property.PremultipliedAlpha, new PropertyValue((bool)_premultipliedAlpha)); }
             if (_opacity != null) { _outputVisualMap.Add((int)Visual.Property.Opacity, new PropertyValue((float)_opacity)); }
+            if (_visualFittingMode != null) { _outputVisualMap.Add((int)Visual.Property.VisualFittingMode, new PropertyValue((int)_visualFittingMode)); }
         }
     }
 
@@ -2114,6 +2315,10 @@ namespace Tizen.NUI
     /// <since_tizen> 3 </since_tizen>
     public class NPatchVisual : VisualMap
     {
+        private string _url = null;
+        private bool? _borderOnly = null;
+        private Rectangle _border = null;
+
         /// <summary>
         /// Constructor.
         /// </summary>
@@ -2122,10 +2327,6 @@ namespace Tizen.NUI
         {
         }
 
-        private string _url = null;
-        private bool? _borderOnly = null;
-        private Rectangle _border = null;
-
         /// <summary>
         /// Gets or sets the URL of the image.<br />
         /// Mandatory.
@@ -2200,6 +2401,7 @@ namespace Tizen.NUI
                 if (_premultipliedAlpha != null) { _outputVisualMap.Add((int)Visual.Property.PremultipliedAlpha, new PropertyValue((bool)_premultipliedAlpha)); }
                 if (_mixColor != null) { _outputVisualMap.Add((int)Visual.Property.MixColor, new PropertyValue(_mixColor)); }
                 if (_opacity != null) { _outputVisualMap.Add((int)Visual.Property.Opacity, new PropertyValue((float)_opacity)); }
+                if (_visualFittingMode != null) { _outputVisualMap.Add((int)Visual.Property.VisualFittingMode, new PropertyValue((int)_visualFittingMode)); }
             }
         }
     }
@@ -2210,6 +2412,8 @@ namespace Tizen.NUI
     /// <since_tizen> 3 </since_tizen>
     public class SVGVisual : VisualMap
     {
+        private string _url = null;
+
         /// <summary>
         /// Constructor.
         /// </summary>
@@ -2218,8 +2422,6 @@ namespace Tizen.NUI
         {
         }
 
-        private string _url = null;
-
         /// <summary>
         /// The url of the svg resource.
         /// </summary>
@@ -2252,6 +2454,7 @@ namespace Tizen.NUI
                 if (_premultipliedAlpha != null) { _outputVisualMap.Add((int)Visual.Property.PremultipliedAlpha, new PropertyValue((bool)_premultipliedAlpha)); }
                 if (_mixColor != null) { _outputVisualMap.Add((int)Visual.Property.MixColor, new PropertyValue(_mixColor)); }
                 if (_opacity != null) { _outputVisualMap.Add((int)Visual.Property.Opacity, new PropertyValue((float)_opacity)); }
+                if (_visualFittingMode != null) { _outputVisualMap.Add((int)Visual.Property.VisualFittingMode, new PropertyValue((int)_visualFittingMode)); }
             }
         }
     }
@@ -2262,6 +2465,12 @@ namespace Tizen.NUI
     /// <since_tizen> 3 </since_tizen>
     public class AnimatedImageVisual : VisualMap
     {
+        private List<string> _urls = null;
+        private int? _batchSize = null;
+        private int? _cacheSize = null;
+        private float? _frameDelay = null;
+        private float? _loopCount = null;
+
         /// <summary>
         /// Constructor.
         /// </summary>
@@ -2270,11 +2479,6 @@ namespace Tizen.NUI
         {
         }
 
-        private List<string> _urls = null;
-        private int? _batchSize = null;
-        private int? _cacheSize = null;
-        private float? _frameDelay = null;
-
         /// <summary>
         /// Gets and Sets the url in the AnimatedImageVisual.
         /// </summary>
@@ -2376,6 +2580,24 @@ namespace Tizen.NUI
         }
 
         /// <summary>
+        /// Gets and sets the number of times the AnimatedImageVisual will be looped.
+        /// The default is -1. If the number is less than 0 then it loops unlimited,otherwise loop loopCount times.
+        /// </summary>
+        /// <since_tizen> 5 </since_tizen>
+        public float LoopCount
+        {
+            get
+            {
+                return _loopCount ?? -1;
+            }
+            set
+            {
+                _loopCount = value;
+                UpdateVisual();
+            }
+        }
+
+        /// <summary>
         /// Compose the out visual map.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -2401,10 +2623,12 @@ namespace Tizen.NUI
                 if (_batchSize != null ) {_outputVisualMap.Add((int)ImageVisualProperty.BatchSize, new PropertyValue((int)_batchSize)); }
                 if (_cacheSize != null ) {_outputVisualMap.Add((int)ImageVisualProperty.CacheSize, new PropertyValue((int)_cacheSize)); }
                 if (_frameDelay != null ) {_outputVisualMap.Add((int)ImageVisualProperty.FrameDelay, new PropertyValue((float)_frameDelay)); }
+                if (_loopCount != null ) {_outputVisualMap.Add((int)ImageVisualProperty.LoopCount, new PropertyValue((int)_loopCount)); }
                 if (_shader != null) { _outputVisualMap.Add((int)Visual.Property.Shader, new PropertyValue(_shader)); }
                 if (_premultipliedAlpha != null) { _outputVisualMap.Add((int)Visual.Property.PremultipliedAlpha, new PropertyValue((bool)_premultipliedAlpha)); }
                 if (_mixColor != null) { _outputVisualMap.Add((int)Visual.Property.MixColor, new PropertyValue(_mixColor)); }
                 if (_opacity != null) { _outputVisualMap.Add((int)Visual.Property.Opacity, new PropertyValue((float)_opacity)); }
+                if (_visualFittingMode != null) { _outputVisualMap.Add((int)Visual.Property.VisualFittingMode, new PropertyValue((int)_visualFittingMode)); }
             }
         }
     }
@@ -2417,6 +2641,13 @@ namespace Tizen.NUI
     /// <since_tizen> 3 </since_tizen>
     public class VisualAnimator : VisualMap
     {
+        private string _alphaFunction = null;
+        private int _startTime = 0;
+        private int _endTime = 0;
+        private string _target = null;
+        private string _propertyIndex = null;
+        private object _destinationValue = null;
+
         /// <summary>
         /// Create VisualAnimator object.
         /// </summary>
@@ -2425,13 +2656,6 @@ namespace Tizen.NUI
         {
         }
 
-        private string _alphaFunction = null;
-        private int _startTime = 0;
-        private int _endTime = 0;
-        private string _target = null;
-        private string _propertyIndex = null;
-        private object _destinationValue = null;
-
         /// <summary>
         /// Sets and Gets the AlphaFunction of this transition.
         /// </summary>
@@ -2663,4 +2887,4 @@ namespace Tizen.NUI
 
 
 
-}
\ No newline at end of file
+}