2 * Copyright(c) 2017 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
22 using System.Collections.Generic;
23 using Tizen.NUI.BaseComponents;
26 /// A class encapsulating the transform map of the visual.
28 /// <since_tizen> 3 </since_tizen>
29 public class VisualMap
31 private Vector2 _visualSize = null;
32 private Vector2 _visualOffset = null;
33 private Vector2 _visualOffsetPolicy = null;
34 private Vector2 _visualSizePolicy = null;
35 private Visual.AlignType? _visualOrigin = null;
36 private Visual.AlignType? _visualAnchorPoint = null;
38 private PropertyMap _visualTransformMap = null;
40 private int? _depthIndex = null;
45 /// <since_tizen> 3 </since_tizen>
46 protected PropertyMap _outputVisualMap = null;
54 internal int VisualIndex
60 internal VisualView Parent
69 /// <since_tizen> 3 </since_tizen>
75 /// Gets or sets the size of the visual.<br />
76 /// It can be either relative (percentage of the parent)
77 /// or absolute (in world units).<br />
80 /// <since_tizen> 3 </since_tizen>
85 return _visualSize ?? (new Size2D(1, 1));
90 if (_visualSizePolicy == null)
92 _visualSizePolicy = new Vector2(1.0f, 1.0f);
99 /// Gets or sets the offset of the visual.<br />
100 /// It can be either relative (percentage of the parent)
101 /// or absolute (in world units).<br />
104 /// <since_tizen> 3 </since_tizen>
105 public Vector2 Position
109 return _visualOffset ?? (new Vector2(0.0f, 0.0f));
113 _visualOffset = value;
114 if (_visualOffsetPolicy == null)
116 _visualOffsetPolicy = new Vector2(1.0f, 1.0f);
123 /// Gets or sets the relative size of the visual<br />
124 /// (percentage [0.0f to 1.0f] of the control).<br />
127 /// <since_tizen> 3 </since_tizen>
128 public RelativeVector2 RelativeSize
132 return _visualSize ?? (new RelativeVector2(1.0f, 1.0f));
137 _visualSizePolicy = new Vector2(0.0f, 0.0f);
143 /// Gets or sets the relative offset of the visual<br />
144 /// (percentage [0.0f to 1.0f] of the control).<br />
147 /// <since_tizen> 3 </since_tizen>
148 public RelativeVector2 RelativePosition
152 return _visualOffset ?? (new RelativeVector2(0.0f, 0.0f));
156 _visualOffset = value;
157 _visualOffsetPolicy = new Vector2(0.0f, 0.0f);
163 /// Gets or sets whether the x and y offset values are relative<br />
164 /// (percentage [0.0f to 1.0f] of the control) or absolute (in world units).<br />
165 /// By default, both the x and the y offset are relative.<br />
168 /// <since_tizen> 3 </since_tizen>
169 public VisualTransformPolicyType PositionPolicy
173 if (_visualOffsetPolicy != null && _visualOffsetPolicy.X == 1.0f
174 && _visualOffsetPolicy.Y == 1.0f)
176 return VisualTransformPolicyType.Absolute;
178 return VisualTransformPolicyType.Relative;
184 case VisualTransformPolicyType.Relative:
185 _visualOffsetPolicy = new Vector2(0.0f, 0.0f);
187 case VisualTransformPolicyType.Absolute:
188 _visualOffsetPolicy = new Vector2(1.0f, 1.0f);
191 _visualOffsetPolicy = new Vector2(0.0f, 0.0f);
199 /// Gets or sets whether the x offset values are relative<br />
200 /// (percentage [0.0f to 1.0f] of the control) or absolute (in world units).<br />
201 /// By default, the x offset is relative.<br />
204 /// <since_tizen> 3 </since_tizen>
205 public VisualTransformPolicyType PositionPolicyX
209 if (_visualOffsetPolicy != null && _visualOffsetPolicy.X == 1.0f)
211 return VisualTransformPolicyType.Absolute;
213 return VisualTransformPolicyType.Relative;
217 if (_visualOffsetPolicy == null)
219 _visualOffsetPolicy = new Vector2(0.0f, 0.0f);
224 case VisualTransformPolicyType.Relative:
225 _visualOffsetPolicy.X = 0.0f;
227 case VisualTransformPolicyType.Absolute:
228 _visualOffsetPolicy.X = 1.0f;
231 _visualOffsetPolicy.X = 0.0f;
240 /// Gets or sets whether the y offset values are relative<br />
241 /// (percentage [0.0f to 1.0f] of the control) or absolute (in world units).<br />
242 /// By default, the y offset is relative.<br />
245 /// <since_tizen> 3 </since_tizen>
246 public VisualTransformPolicyType PositionPolicyY
250 if (_visualOffsetPolicy != null && _visualOffsetPolicy.Y == 1.0f)
252 return VisualTransformPolicyType.Absolute;
254 return VisualTransformPolicyType.Relative;
258 if (_visualOffsetPolicy == null)
260 _visualOffsetPolicy = new Vector2(0.0f, 0.0f);
265 case VisualTransformPolicyType.Relative:
266 _visualOffsetPolicy.Y = 0.0f;
268 case VisualTransformPolicyType.Absolute:
269 _visualOffsetPolicy.Y = 1.0f;
272 _visualOffsetPolicy.Y = 0.0f;
280 /// Gets or sets whether the size values of the width or the height are relative<br />
281 /// (percentage [0.0f to 1.0f] of the control) or absolute (in world units).<br />
282 /// By default, offsets of both the width and the height are relative to the control's size.<br />
285 /// <since_tizen> 3 </since_tizen>
286 public VisualTransformPolicyType SizePolicy
290 if (_visualSizePolicy != null && _visualSizePolicy.X == 1.0f
291 && _visualSizePolicy.Y == 1.0f)
293 return VisualTransformPolicyType.Absolute;
295 return VisualTransformPolicyType.Relative;
301 case VisualTransformPolicyType.Relative:
302 _visualSizePolicy = new Vector2(0.0f, 0.0f);
304 case VisualTransformPolicyType.Absolute:
305 _visualSizePolicy = new Vector2(1.0f, 1.0f);
308 _visualSizePolicy = new Vector2(0.0f, 0.0f);
316 /// Gets or sets whether size values of the width are relative.<br />
317 /// (percentage [0.0f to 1.0f] of the control) or absolute (in world units).<br />
318 /// By default, the value of the width is relative to the control's width.<br />
321 /// <since_tizen> 3 </since_tizen>
322 public VisualTransformPolicyType SizePolicyWidth
326 if (_visualSizePolicy != null && _visualSizePolicy.Width == 1.0f)
328 return VisualTransformPolicyType.Absolute;
330 return VisualTransformPolicyType.Relative;
334 if (_visualSizePolicy == null)
336 _visualSizePolicy = new Vector2(0.0f, 0.0f);
341 case VisualTransformPolicyType.Relative:
342 _visualSizePolicy.Width = 0.0f;
344 case VisualTransformPolicyType.Absolute:
345 _visualSizePolicy.Width = 1.0f;
348 _visualSizePolicy.Width = 0.0f;
356 /// Gets or sets whether size values of the height are relative<br />
357 /// (percentage [0.0f to 1.0f] of the control) or absolute (in world units).<br />
358 /// By default, the height value is relative to the control's height.<br />
361 /// <since_tizen> 3 </since_tizen>
362 public VisualTransformPolicyType SizePolicyHeight
366 if (_visualSizePolicy != null && _visualSizePolicy.Height == 1.0f)
368 return VisualTransformPolicyType.Absolute;
370 return VisualTransformPolicyType.Relative;
374 if (_visualSizePolicy == null)
376 _visualSizePolicy = new Vector2(0.0f, 0.0f);
381 case VisualTransformPolicyType.Relative:
382 _visualSizePolicy.Height = 0.0f;
384 case VisualTransformPolicyType.Absolute:
385 _visualSizePolicy.Height = 1.0f;
388 _visualSizePolicy.Height = 0.0f;
396 /// Gets or sets the origin of the visual within its control area.<br />
397 /// By default, the origin is center.<br />
400 /// <since_tizen> 3 </since_tizen>
401 public Visual.AlignType Origin
405 return _visualOrigin ?? (Visual.AlignType.Center);
409 _visualOrigin = value;
415 /// Gets or sets the anchor point of the visual.<br />
416 /// By default, the anchor point is center.<br />
419 /// <since_tizen> 3 </since_tizen>
420 public Visual.AlignType AnchorPoint
424 return _visualAnchorPoint ?? (Visual.AlignType.Center);
428 _visualAnchorPoint = value;
434 /// Gets or sets the depth index of the visual.<br />
435 /// By default, the depth index is 0.<br />
438 /// <since_tizen> 3 </since_tizen>
439 public int DepthIndex
443 return _depthIndex ?? (0);
451 private void ComposingTransformMap()
453 _visualTransformMap = new PropertyMap();
454 if (_visualSize != null) { _visualTransformMap.Add((int)VisualTransformPropertyType.Size, new PropertyValue(_visualSize)); }
455 if (_visualOffset != null) { _visualTransformMap.Add((int)VisualTransformPropertyType.Offset, new PropertyValue(_visualOffset)); }
456 if (_visualOffsetPolicy != null) { _visualTransformMap.Add((int)VisualTransformPropertyType.OffsetPolicy, new PropertyValue(_visualOffsetPolicy)); }
457 if (_visualSizePolicy != null) { _visualTransformMap.Add((int)VisualTransformPropertyType.SizePolicy, new PropertyValue(_visualSizePolicy)); }
458 if (_visualOrigin != null) { _visualTransformMap.Add((int)VisualTransformPropertyType.Origin, new PropertyValue((int)_visualOrigin)); }
459 if (_visualAnchorPoint != null) { _visualTransformMap.Add((int)VisualTransformPropertyType.AnchorPoint, new PropertyValue((int)_visualAnchorPoint)); }
463 /// Gets the transform map used by the visual.
465 /// <since_tizen> 3 </since_tizen>
466 public PropertyMap OutputTransformMap
470 ComposingTransformMap();
471 return _visualTransformMap;
476 /// Compose the out visual map.
478 /// <since_tizen> 3 </since_tizen>
479 protected virtual void ComposingPropertyMap()
481 _outputVisualMap = new PropertyMap();
485 /// Gets the property map to create the visual.
487 /// <since_tizen> 3 </since_tizen>
488 public PropertyMap OutputVisualMap
492 ComposingPropertyMap();
493 return _outputVisualMap;
497 internal void UpdateVisual()
501 NUILog.Debug("UpdateVisual()! VisualIndex=" + VisualIndex);
502 Parent.UpdateVisual(VisualIndex, Name, this);
506 NUILog.Debug("VisualIndex was not set");
511 /// The shader of the visual.
513 /// <since_tizen> 3 </since_tizen>
514 protected PropertyMap _shader = null;
515 //private PropertyMap _transform = null;
518 /// The premultipliedAlpha of the visual.
520 /// <since_tizen> 3 </since_tizen>
521 protected bool? _premultipliedAlpha = null;
524 /// The mixColor of the Visual.
526 /// <since_tizen> 3 </since_tizen>
527 protected Color _mixColor = null;
530 /// The opacity of the visual.
532 /// <since_tizen> 3 </since_tizen>
533 protected float? _opacity = null;
536 /// The map for visual.
538 /// <since_tizen> 3 </since_tizen>
539 protected PropertyMap _commonlyUsedMap = null;
542 /// The shader to use in the visual.
544 /// <since_tizen> 3 </since_tizen>
545 public PropertyMap Shader
559 /// Enables or disables the premultiplied alpha. <br />
560 /// The premultiplied alpha is false by default unless this behavior is modified by the derived visual type.
562 /// <since_tizen> 3 </since_tizen>
563 public bool PremultipliedAlpha
567 return _premultipliedAlpha ?? (false);
571 _premultipliedAlpha = value;
577 /// Mix color is a blend color for any visual.
579 /// <since_tizen> 3 </since_tizen>
580 public Color MixColor
594 /// Opacity is the alpha component of the mix color discussed above.
596 /// <since_tizen> 3 </since_tizen>
601 return _opacity ?? (1.0f);
613 /// A class encapsulating the property map of the image visual.
615 /// <since_tizen> 3 </since_tizen>
616 public class ImageVisual : VisualMap
621 /// <since_tizen> 3 </since_tizen>
622 public ImageVisual() : base()
626 private string _url = null;
627 private string _alphaMaskUrl = null;
628 private FittingModeType? _fittingMode = null;
629 private SamplingModeType? _samplingMode = null;
630 private int? _desiredWidth = null;
631 private int? _desiredHeight = null;
632 private bool? _synchronousLoading = false;
633 private bool? _borderOnly = null;
634 private Vector4 _pixelArea = null;
635 private WrapModeType? _wrapModeU = null;
636 private WrapModeType? _wrapModeV = null;
637 private float? _maskContentScale = null;
638 private bool? _cropToMask = null;
641 /// Gets or sets the URL of the image.<br />
644 /// <since_tizen> 3 </since_tizen>
660 /// Gets or sets the URL of the alpha mask.<br />
663 /// <since_tizen> 3 </since_tizen>
664 public string AlphaMaskURL
668 return _alphaMaskUrl;
672 _alphaMaskUrl = value;
678 /// Gets or sets fitting options used when resizing images to fit the desired dimensions.<br />
679 /// If not supplied, the default is FittingModeType.ShrinkToFit.<br />
680 /// For normal quad images only.<br />
683 /// <since_tizen> 3 </since_tizen>
684 public FittingModeType FittingMode
688 return _fittingMode ?? (FittingModeType.ShrinkToFit);
692 _fittingMode = value;
698 /// Gets or sets filtering options used when resizing images to the sample original pixels.<br />
699 /// If not supplied, the default is SamplingModeType.Box.<br />
700 /// For normal quad images only.<br />
703 /// <since_tizen> 3 </since_tizen>
704 public SamplingModeType SamplingMode
708 return _samplingMode ?? (SamplingModeType.Box);
712 _samplingMode = value;
718 /// Gets or sets the desired image width.<br />
719 /// If not specified, the actual image width is used.<br />
720 /// For normal quad images only.<br />
723 /// <since_tizen> 3 </since_tizen>
724 public int DesiredWidth
728 return _desiredWidth ?? (-1);
732 _desiredWidth = value;
738 /// Gets or sets the desired image height.<br />
739 /// If not specified, the actual image height is used.<br />
740 /// For normal quad images only.<br />
743 /// <since_tizen> 3 </since_tizen>
744 public int DesiredHeight
748 return _desiredHeight ?? (-1);
752 _desiredHeight = value;
758 /// Gets or sets whether to load the image synchronously.<br />
759 /// If not specified, the default is false, i.e., the image is loaded asynchronously.<br />
760 /// For normal quad images only.<br />
763 /// <since_tizen> 3 </since_tizen>
764 public bool SynchronousLoading
768 return _synchronousLoading ?? (false);
772 _synchronousLoading = value;
778 /// Gets or sets whether to draw the borders only (If true).<br />
779 /// If not specified, the default is false.<br />
780 /// For n-patch images only.<br />
783 /// <since_tizen> 3 </since_tizen>
784 public bool BorderOnly
788 return _borderOnly ?? (false);
798 /// Gets or sets the image area to be displayed.<br />
799 /// It is a rectangular area.<br />
800 /// The first two elements indicate the top-left position of the area, and the last two elements are the areas of the width and the height respectively.<br />
801 /// If not specified, the default value is Vector4 (0.0, 0.0, 1.0, 1.0), i.e., the entire area of the image.<br />
802 /// For normal quad images only.<br />
805 /// <since_tizen> 3 </since_tizen>
806 public Vector4 PixelArea
810 return _pixelArea ?? (new Vector4(0.0f, 0.0f, 1.0f, 1.0f));
820 /// Gets or sets the wrap mode for the u coordinate.<br />
821 /// It decides how the texture should be sampled when the u coordinate exceeds the range of 0.0 to 1.0.<br />
822 /// If not specified, the default is WrapModeType.Default(CLAMP).<br />
823 /// For normal quad images only.<br />
826 /// <since_tizen> 3 </since_tizen>
827 public WrapModeType WrapModeU
831 return _wrapModeU ?? (WrapModeType.Default);
841 /// Gets or sets the wrap mode for the v coordinate.<br />
842 /// It decides how the texture should be sampled when the v coordinate exceeds the range of 0.0 to 1.0.<br />
843 /// The first two elements indicate the top-left position of the area, and the last two elements are the areas of the width and the height respectively.<br />
844 /// If not specified, the default is WrapModeType.Default(CLAMP).<br />
845 /// For normal quad images only.
848 /// <since_tizen> 3 </since_tizen>
849 public WrapModeType WrapModeV
853 return _wrapModeV ?? (WrapModeType.Default);
863 /// Gets or sets scale factor to apply to the content image before masking.
865 /// <since_tizen> 4 </since_tizen>
866 public float MaskContentScale
870 return _maskContentScale ?? 1.0f;
874 _maskContentScale = value;
880 /// Whether to crop image to mask or scale mask to fit image.
882 /// <since_tizen> 4 </since_tizen>
883 public bool CropToMask
887 return _cropToMask ?? false;
897 /// Compose the out visual map.
899 /// <since_tizen> 3 </since_tizen>
900 protected override void ComposingPropertyMap()
904 _outputVisualMap = new PropertyMap();
905 _outputVisualMap.Add(Visual.Property.Type, new PropertyValue((int)Visual.Type.Image));
906 _outputVisualMap.Add(ImageVisualProperty.URL, new PropertyValue(_url));
907 if (_alphaMaskUrl != null ) { _outputVisualMap.Add(ImageVisualProperty.AlphaMaskURL, new PropertyValue(_alphaMaskUrl)); }
908 if (_fittingMode != null) { _outputVisualMap.Add(ImageVisualProperty.FittingMode, new PropertyValue((int)_fittingMode)); }
909 if (_samplingMode != null) { _outputVisualMap.Add(ImageVisualProperty.SamplingMode, new PropertyValue((int)_samplingMode)); }
910 if (_desiredWidth != null) { _outputVisualMap.Add(ImageVisualProperty.DesiredWidth, new PropertyValue((int)_desiredWidth)); }
911 if (_desiredHeight != null) { _outputVisualMap.Add(ImageVisualProperty.DesiredHeight, new PropertyValue((int)_desiredHeight)); }
912 if (_synchronousLoading != null) { _outputVisualMap.Add(ImageVisualProperty.SynchronousLoading, new PropertyValue((bool)_synchronousLoading)); }
913 if (_borderOnly != null) { _outputVisualMap.Add(ImageVisualProperty.BorderOnly, new PropertyValue((bool)_borderOnly)); }
914 if (_pixelArea != null) { _outputVisualMap.Add(ImageVisualProperty.PixelArea, new PropertyValue(_pixelArea)); }
915 if (_wrapModeU != null) { _outputVisualMap.Add(ImageVisualProperty.WrapModeU, new PropertyValue((int)_wrapModeU)); }
916 if (_wrapModeV != null) { _outputVisualMap.Add(ImageVisualProperty.WrapModeV, new PropertyValue((int)_wrapModeV)); }
917 if (_shader != null) { _outputVisualMap.Add((int)Visual.Property.Shader, new PropertyValue(_shader)); }
918 if (_premultipliedAlpha != null) { _outputVisualMap.Add((int)Visual.Property.PremultipliedAlpha, new PropertyValue((bool)_premultipliedAlpha)); }
919 if (_mixColor != null) { _outputVisualMap.Add((int)Visual.Property.MixColor, new PropertyValue(_mixColor)); }
920 if (_opacity != null) { _outputVisualMap.Add((int)Visual.Property.Opacity, new PropertyValue((float)_opacity)); }
921 if (_maskContentScale != null) { _outputVisualMap.Add((int)ImageVisualProperty.MaskContentScale, new PropertyValue((float)_maskContentScale)); }
922 if (_cropToMask != null) { _outputVisualMap.Add((int)ImageVisualProperty.CropToMask, new PropertyValue((bool)_cropToMask)); }
928 /// A class encapsulating the property map of the text visual.
930 /// <since_tizen> 3 </since_tizen>
931 public class TextVisual : VisualMap
936 /// <since_tizen> 3 </since_tizen>
937 public TextVisual() : base()
941 private string _text = null;
942 private string _fontFamily = null;
943 private PropertyMap _fontStyle = null;
944 private float? _pointSize = null;
945 private bool? _multiLine = null;
946 private string _horizontalAlignment = null;
947 private string _verticalAlignment = null;
948 private Color _textColor = null;
949 private bool? _enableMarkup = null;
952 /// Gets or sets the text to display in the UTF-8 format.<br />
955 /// <since_tizen> 3 </since_tizen>
970 /// Gets or sets the requested font family to use.<br />
973 /// <since_tizen> 3 </since_tizen>
974 public string FontFamily
988 /// Gets or sets the requested font style to use.<br />
991 /// <since_tizen> 3 </since_tizen>
992 public PropertyMap FontStyle
1006 /// Gets or sets the size of font in points.<br />
1009 /// <since_tizen> 3 </since_tizen>
1010 public float PointSize
1014 return _pointSize ?? (0.0f);
1024 /// Gets or sets the single-line or multi-line layout option.<br />
1025 /// If not specified, the default is false.<br />
1028 /// <since_tizen> 3 </since_tizen>
1029 public bool MultiLine
1033 return _multiLine ?? (false);
1043 /// Gets or sets the line horizontal alignment.<br />
1044 /// If not specified, the default is begin.<br />
1047 /// <since_tizen> 3 </since_tizen>
1048 public HorizontalAlignment HorizontalAlignment
1052 switch (_horizontalAlignment)
1055 return HorizontalAlignment.Begin;
1057 return HorizontalAlignment.Center;
1059 return HorizontalAlignment.End;
1061 return HorizontalAlignment.Begin;
1068 case HorizontalAlignment.Begin:
1070 _horizontalAlignment = "BEGIN";
1073 case HorizontalAlignment.Center:
1075 _horizontalAlignment = "CENTER";
1078 case HorizontalAlignment.End:
1080 _horizontalAlignment = "END";
1085 _horizontalAlignment = "BEGIN";
1094 /// Gets or sets the line vertical alignment.<br />
1095 /// If not specified, the default is top.<br />
1098 /// <since_tizen> 3 </since_tizen>
1099 public VerticalAlignment VerticalAlignment
1103 switch (_verticalAlignment)
1106 return VerticalAlignment.Top;
1108 return VerticalAlignment.Center;
1110 return VerticalAlignment.Bottom;
1112 return VerticalAlignment.Top;
1119 case VerticalAlignment.Top:
1121 _verticalAlignment = "TOP";
1124 case VerticalAlignment.Center:
1126 _verticalAlignment = "CENTER";
1129 case VerticalAlignment.Bottom:
1131 _verticalAlignment = "BOTTOM";
1136 _verticalAlignment = "TOP";
1145 /// Gets or sets the color of the text.<br />
1148 /// <since_tizen> 3 </since_tizen>
1149 public Color TextColor
1163 /// Gets or sets whether the mark-up processing is enabled.<br />
1166 /// <since_tizen> 3 </since_tizen>
1167 public bool EnableMarkup
1171 return _enableMarkup ?? (false);
1175 _enableMarkup = value;
1181 /// Compose the out visual map.
1183 /// <since_tizen> 3 </since_tizen>
1184 protected override void ComposingPropertyMap()
1186 if (_text != null && _pointSize != null)
1188 _outputVisualMap = new PropertyMap();
1189 _outputVisualMap.Add(Visual.Property.Type, new PropertyValue((int)Visual.Type.Text));
1190 _outputVisualMap.Add(TextVisualProperty.Text, new PropertyValue(_text));
1191 _outputVisualMap.Add(TextVisualProperty.PointSize, new PropertyValue((float)_pointSize));
1192 if (_fontFamily != null) { _outputVisualMap.Add(TextVisualProperty.FontFamily, new PropertyValue(_fontFamily)); }
1193 if (_fontStyle != null) { _outputVisualMap.Add(TextVisualProperty.FontStyle, new PropertyValue(_fontStyle)); }
1194 if (_multiLine != null) { _outputVisualMap.Add(TextVisualProperty.MultiLine, new PropertyValue((bool)_multiLine)); }
1195 if (_horizontalAlignment != null) { _outputVisualMap.Add(TextVisualProperty.HorizontalAlignment, new PropertyValue(_horizontalAlignment)); }
1196 if (_verticalAlignment != null) { _outputVisualMap.Add(TextVisualProperty.VerticalAlignment, new PropertyValue(_verticalAlignment)); }
1197 if (_textColor != null) { _outputVisualMap.Add(TextVisualProperty.TextColor, new PropertyValue(_textColor)); }
1198 if (_enableMarkup != null) { _outputVisualMap.Add(TextVisualProperty.EnableMarkup, new PropertyValue((bool)_enableMarkup)); }
1199 if (_shader != null) { _outputVisualMap.Add((int)Visual.Property.Shader, new PropertyValue(_shader)); }
1200 if (_premultipliedAlpha != null) { _outputVisualMap.Add((int)Visual.Property.PremultipliedAlpha, new PropertyValue((bool)_premultipliedAlpha)); }
1201 if (_mixColor != null) { _outputVisualMap.Add((int)Visual.Property.MixColor, new PropertyValue(_mixColor)); }
1202 if (_opacity != null) { _outputVisualMap.Add((int)Visual.Property.Opacity, new PropertyValue((float)_opacity)); }
1208 /// A class encapsulating the property map of the border visual.
1210 /// <since_tizen> 3 </since_tizen>
1211 public class BorderVisual : VisualMap
1216 /// <since_tizen> 3 </since_tizen>
1217 public BorderVisual() : base()
1221 private Color _color = null;
1222 private float? _size = null;
1223 private bool? _antiAliasing = null;
1226 /// Gets or sets the color of the border.<br />
1229 /// <since_tizen> 3 </since_tizen>
1244 /// Gets or sets the width of the border (in pixels).<br />
1247 /// <since_tizen> 3 </since_tizen>
1248 public float BorderSize
1252 return _size ?? (-1.0f);
1262 /// Gets or sets whether the anti-aliasing of the border is required.<br />
1263 /// If not supplied, the default is false.<br />
1266 /// <since_tizen> 3 </since_tizen>
1267 public bool AntiAliasing
1271 return _antiAliasing ?? (false);
1275 _antiAliasing = value;
1281 /// Compose the out visual map.
1283 /// <since_tizen> 3 </since_tizen>
1284 protected override void ComposingPropertyMap()
1286 if (_color != null && _size != null)
1288 _outputVisualMap = new PropertyMap();
1289 _outputVisualMap.Add(Visual.Property.Type, new PropertyValue((int)Visual.Type.Border));
1290 _outputVisualMap.Add(BorderVisualProperty.Size, new PropertyValue((float)_size));
1291 _outputVisualMap.Add(BorderVisualProperty.Color, new PropertyValue(_color));
1292 if (_antiAliasing != null) { _outputVisualMap.Add(BorderVisualProperty.AntiAliasing, new PropertyValue((bool)_antiAliasing)); }
1293 if (_shader != null) { _outputVisualMap.Add((int)Visual.Property.Shader, new PropertyValue(_shader)); }
1294 if (_premultipliedAlpha != null) { _outputVisualMap.Add((int)Visual.Property.PremultipliedAlpha, new PropertyValue((bool)_premultipliedAlpha)); }
1295 if (_mixColor != null) { _outputVisualMap.Add((int)Visual.Property.MixColor, new PropertyValue(_mixColor)); }
1296 if (_opacity != null) { _outputVisualMap.Add((int)Visual.Property.Opacity, new PropertyValue((float)_opacity)); }
1302 /// A class encapsulating the property map of the color visual.
1304 /// <since_tizen> 3 </since_tizen>
1305 public class ColorVisual : VisualMap
1310 /// <since_tizen> 3 </since_tizen>
1311 public ColorVisual() : base()
1315 private Color _mixColorForColorVisual = null;
1318 /// Gets or sets the solid color required.<br />
1321 /// <since_tizen> 3 </since_tizen>
1326 return _mixColorForColorVisual;
1330 _mixColorForColorVisual = value;
1336 /// Compose the out visual map.
1338 /// <since_tizen> 3 </since_tizen>
1339 protected override void ComposingPropertyMap()
1341 if (_mixColorForColorVisual != null)
1343 _outputVisualMap = new PropertyMap();
1344 _outputVisualMap.Add(Visual.Property.Type, new PropertyValue((int)Visual.Type.Color));
1345 _outputVisualMap.Add(ColorVisualProperty.MixColor, new PropertyValue(_mixColorForColorVisual));
1346 if (_shader != null) { _outputVisualMap.Add((int)Visual.Property.Shader, new PropertyValue(_shader)); }
1347 if (_premultipliedAlpha != null) { _outputVisualMap.Add((int)Visual.Property.PremultipliedAlpha, new PropertyValue((bool)_premultipliedAlpha)); }
1348 if (_opacity != null) { _outputVisualMap.Add((int)Visual.Property.Opacity, new PropertyValue((float)_opacity)); }
1354 /// A class encapsulating the property map of the gradient visual.
1356 /// <since_tizen> 3 </since_tizen>
1357 public class GradientVisual : VisualMap
1362 /// <since_tizen> 3 </since_tizen>
1363 public GradientVisual() : base()
1367 private Vector2 _startPosition = null;
1368 private Vector2 _endPosition = null;
1369 private Vector2 _center = null;
1370 private float? _radius = null;
1371 private PropertyArray _stopOffset = null;
1372 private PropertyArray _stopColor = null;
1373 private GradientVisualUnitsType? _units = null;
1374 private GradientVisualSpreadMethodType? _spreadMethod = null;
1377 /// Gets or sets the start position of a linear gradient.<br />
1378 /// Mandatory for linear.<br />
1380 /// <since_tizen> 3 </since_tizen>
1381 public Vector2 StartPosition
1385 return _startPosition;
1389 _startPosition = value;
1395 /// Gets or sets the end position of a linear gradient.<br />
1396 /// Mandatory for linear.<br />
1398 /// <since_tizen> 3 </since_tizen>
1399 public Vector2 EndPosition
1403 return _endPosition;
1407 _endPosition = value;
1413 /// Gets or sets the center point of a radial gradient.<br />
1414 /// Mandatory for radial.<br />
1416 /// <since_tizen> 3 </since_tizen>
1417 public Vector2 Center
1431 /// Gets or sets the size of the radius of a radial gradient.<br />
1432 /// Mandatory for radial.<br />
1434 /// <since_tizen> 3 </since_tizen>
1439 return _radius ?? (-1.0f);
1449 /// Gets or sets all the stop offsets.<br />
1450 /// A PropertyArray of float.<br />
1451 /// If not supplied, the default is 0.0f and 1.0f.<br />
1454 /// <since_tizen> 3 </since_tizen>
1455 public PropertyArray StopOffset
1463 _stopOffset = value;
1469 /// Gets or sets the color at the stop offsets.<br />
1470 /// A PropertyArray of color.<br />
1471 /// At least 2 values are required to show a gradient.<br />
1474 /// <since_tizen> 3 </since_tizen>
1475 public PropertyArray StopColor
1489 /// Gets or sets descriptions of the coordinate system for certain attributes of the points in a gradient.<br />
1490 /// If not supplied, the default is GradientVisualUnitsType.ObjectBoundingBox.<br />
1493 /// <since_tizen> 3 </since_tizen>
1494 public GradientVisualUnitsType Units
1498 return _units ?? (GradientVisualUnitsType.ObjectBoundingBox);
1508 /// Gets or sets indications of what happens if the gradient starts or ends inside the bounds of the target rectangle.<br />
1509 /// If not supplied, the default is GradientVisualSpreadMethodType.Pad.<br />
1512 /// <since_tizen> 3 </since_tizen>
1513 public GradientVisualSpreadMethodType SpreadMethod
1517 return _spreadMethod ?? (GradientVisualSpreadMethodType.Pad);
1521 _spreadMethod = value;
1527 /// Compose the out visual map.
1529 /// <since_tizen> 3 </since_tizen>
1530 protected override void ComposingPropertyMap()
1532 if (((_startPosition != null && _endPosition != null) || (_center != null && _radius != null)) && _stopColor != null)
1534 _outputVisualMap = new PropertyMap();
1535 _outputVisualMap.Add(Visual.Property.Type, new PropertyValue((int)Visual.Type.Gradient));
1536 _outputVisualMap.Add(GradientVisualProperty.StopColor, new PropertyValue(_stopColor));
1537 if (_startPosition != null) { _outputVisualMap.Add(GradientVisualProperty.StartPosition, new PropertyValue(_startPosition)); }
1538 if (_endPosition != null) { _outputVisualMap.Add(GradientVisualProperty.EndPosition, new PropertyValue(_endPosition)); }
1539 if (_center != null) { _outputVisualMap.Add(GradientVisualProperty.Center, new PropertyValue(_center)); }
1540 if (_radius != null) { _outputVisualMap.Add(GradientVisualProperty.Radius, new PropertyValue((float)_radius)); }
1541 if (_stopOffset != null) { _outputVisualMap.Add(GradientVisualProperty.StopOffset, new PropertyValue(_stopOffset)); }
1542 if (_units != null) { _outputVisualMap.Add(GradientVisualProperty.Units, new PropertyValue((int)_units)); }
1543 if (_spreadMethod != null) { _outputVisualMap.Add(GradientVisualProperty.SpreadMethod, new PropertyValue((int)_spreadMethod)); }
1544 if (_shader != null) { _outputVisualMap.Add((int)Visual.Property.Shader, new PropertyValue(_shader)); }
1545 if (_premultipliedAlpha != null) { _outputVisualMap.Add((int)Visual.Property.PremultipliedAlpha, new PropertyValue((bool)_premultipliedAlpha)); }
1546 if (_mixColor != null) { _outputVisualMap.Add((int)Visual.Property.MixColor, new PropertyValue(_mixColor)); }
1547 if (_opacity != null) { _outputVisualMap.Add((int)Visual.Property.Opacity, new PropertyValue((float)_opacity)); }
1553 /// A class encapsulating the property map of the mesh visual.
1555 /// <since_tizen> 3 </since_tizen>
1556 public class MeshVisual : VisualMap
1561 /// <since_tizen> 3 </since_tizen>
1562 public MeshVisual() : base()
1566 private string _objectURL = null;
1567 private string _materialtURL = null;
1568 private string _texturesPath = null;
1569 private MeshVisualShadingModeValue? _shadingMode = null;
1570 private bool? _useMipmapping = null;
1571 private bool? _useSoftNormals = null;
1572 private Vector3 _lightPosition = null;
1575 /// Gets or sets the location of the ".obj" file.<br />
1578 /// <since_tizen> 3 </since_tizen>
1579 public string ObjectURL
1593 /// Gets or sets the location of the ".mtl" file.<br />
1594 /// If not specified, then a textureless object is assumed.<br />
1597 /// <since_tizen> 3 </since_tizen>
1598 public string MaterialtURL
1602 return _materialtURL;
1606 _materialtURL = value;
1612 /// Gets or sets the path to the directory the textures (including gloss and normal) are stored in.<br />
1613 /// Mandatory if using material.<br />
1615 /// <since_tizen> 3 </since_tizen>
1616 public string TexturesPath
1620 return _texturesPath;
1624 _texturesPath = value;
1630 /// Gets or sets the type of shading mode that the mesh will use.<br />
1631 /// If anything the specified shading mode requires is missing, a simpler mode that can be handled with what has been supplied will be used instead.<br />
1632 /// If not specified, it will use the best it can support (will try MeshVisualShadingModeValue.TexturedWithDetailedSpecularLighting first).<br />
1635 /// <since_tizen> 3 </since_tizen>
1636 public MeshVisualShadingModeValue ShadingMode
1640 return _shadingMode ?? (MeshVisualShadingModeValue.TexturedWithDetailedSpecularLighting);
1644 _shadingMode = value;
1650 /// Gets or sets whether to use mipmaps for textures or not.<br />
1651 /// If not specified, the default is true.<br />
1654 /// <since_tizen> 3 </since_tizen>
1655 public bool UseMipmapping
1659 return _useMipmapping ?? (true);
1663 _useMipmapping = value;
1669 /// Gets or sets whether to average normals at each point to smooth textures or not.<br />
1670 /// If not specified, the default is true.<br />
1673 /// <since_tizen> 3 </since_tizen>
1674 public bool UseSoftNormals
1678 return _useSoftNormals ?? (true);
1682 _useSoftNormals = value;
1688 /// Gets or sets the position, in the stage space, of the point light that applies lighting to the model.<br />
1689 /// This is based off the stage's dimensions, so using the width and the height of the stage halved will correspond to the center,
1690 /// and using all zeroes will place the light at the top-left corner.<br />
1691 /// If not specified, the default is an offset outwards from the center of the screen.<br />
1694 /// <since_tizen> 3 </since_tizen>
1695 public Vector3 LightPosition
1699 return _lightPosition;
1703 _lightPosition = value;
1709 /// Compose the out visual map.
1711 /// <since_tizen> 3 </since_tizen>
1712 protected override void ComposingPropertyMap()
1714 if (_objectURL != null)
1716 _outputVisualMap = new PropertyMap();
1717 _outputVisualMap.Add(Visual.Property.Type, new PropertyValue((int)Visual.Type.Mesh));
1718 _outputVisualMap.Add(MeshVisualProperty.ObjectURL, new PropertyValue(_objectURL));
1719 if (_materialtURL != null) { _outputVisualMap.Add(MeshVisualProperty.MaterialtURL, new PropertyValue(_materialtURL)); }
1720 if (_texturesPath != null) { _outputVisualMap.Add(MeshVisualProperty.TexturesPath, new PropertyValue(_texturesPath)); }
1721 if (_shadingMode != null) { _outputVisualMap.Add(MeshVisualProperty.ShadingMode, new PropertyValue((int)_shadingMode)); }
1722 if (_useMipmapping != null) { _outputVisualMap.Add(MeshVisualProperty.UseMipmapping, new PropertyValue((bool)_useMipmapping)); }
1723 if (_useSoftNormals != null) { _outputVisualMap.Add(MeshVisualProperty.UseSoftNormals, new PropertyValue((bool)_useSoftNormals)); }
1724 if (_shader != null) { _outputVisualMap.Add((int)Visual.Property.Shader, new PropertyValue(_shader)); }
1725 if (_premultipliedAlpha != null) { _outputVisualMap.Add((int)Visual.Property.PremultipliedAlpha, new PropertyValue((bool)_premultipliedAlpha)); }
1726 if (_mixColor != null) { _outputVisualMap.Add((int)Visual.Property.MixColor, new PropertyValue(_mixColor)); }
1727 if (_opacity != null) { _outputVisualMap.Add((int)Visual.Property.Opacity, new PropertyValue((float)_opacity)); }
1733 /// A class encapsulating the property map of the primetive visual.
1735 /// <since_tizen> 3 </since_tizen>
1736 public class PrimitiveVisual : VisualMap
1741 /// <since_tizen> 3 </since_tizen>
1742 public PrimitiveVisual() : base()
1746 private PrimitiveVisualShapeType? _shape = null;
1747 private Color _mixColorForPrimitiveVisual = null;
1748 private int? _slices = null;
1749 private int? _stacks = null;
1750 private float? _scaleTopRadius = null;
1751 private float? _scaleBottomRadius = null;
1752 private float? _scaleHeight = null;
1753 private float? _scaleRadius = null;
1754 private Vector3 _scaleDimensions = null;
1755 private float? _bevelPercentage = null;
1756 private float? _bevelSmoothness = null;
1757 private Vector3 _lightPosition = null;
1760 /// Gets or sets the specific shape to render.<br />
1761 /// If not specified, the default is PrimitiveVisualShapeType.Sphere.<br />
1764 /// <since_tizen> 3 </since_tizen>
1765 public PrimitiveVisualShapeType Shape
1769 return _shape ?? (PrimitiveVisualShapeType.Sphere);
1779 /// Gets or sets the color of the shape.<br />
1780 /// If not specified, the default is Color (0.5, 0.5, 0.5, 1.0).<br />
1781 /// Applies to all shapes.<br />
1784 /// <since_tizen> 3 </since_tizen>
1785 public new Color MixColor
1789 return _mixColorForPrimitiveVisual ?? (new Color(0.5f, 0.5f, 0.5f, 1.0f));
1793 _mixColorForPrimitiveVisual = value;
1799 /// Gets or sets the number of slices as you go around the shape.<br />
1800 /// For spheres and conical frustrums, this determines how many divisions there are as you go around the object.<br />
1801 /// If not specified, the default is 128.<br />
1802 /// The range is from 1 to 255.<br />
1805 /// <since_tizen> 3 </since_tizen>
1810 return _slices ?? (128);
1820 /// Gets or sets the number of stacks as you go down the shape.<br />
1821 /// For spheres, 'stacks' determines how many layers there are as you go down the object.<br />
1822 /// If not specified, the default is 128.<br />
1823 /// The range is from 1 to 255.<br />
1826 /// <since_tizen> 3 </since_tizen>
1831 return _stacks ?? (128);
1841 /// Gets or sets the scale of the radius of the top circle of a conical frustrum.<br />
1842 /// If not specified, the default is 1.0f.<br />
1843 /// Applies to: - PrimitiveVisualShapeType.ConicalFrustrum<br />
1844 /// Only values greater than or equal to 0.0f are accepted.<br />
1847 /// <since_tizen> 3 </since_tizen>
1848 public float ScaleTopRadius
1852 return _scaleTopRadius ?? (1.0f);
1856 _scaleTopRadius = value;
1862 /// Gets or sets the scale of the radius of the bottom circle of a conical frustrum.<br />
1863 /// If not specified, the default is 1.5f.<br />
1864 /// Applies to: - PrimitiveVisualShapeType.ConicalFrustrum<br />
1865 /// - PrimitiveVisualShapeType.Cone<br />
1866 /// Only values greater than or equal to 0.0f are accepted.<br />
1869 /// <since_tizen> 3 </since_tizen>
1870 public float ScaleBottomRadius
1874 return _scaleBottomRadius ?? (1.5f);
1878 _scaleBottomRadius = value;
1884 /// Gets or sets the scale of the height of a conic.<br />
1885 /// If not specified, the default is 3.0f.<br />
1886 /// Applies to:<br />
1887 /// - PrimitiveVisualShapeType.ConicalFrustrum<br />
1888 /// - PrimitiveVisualShapeType.Cone<br />
1889 /// - PrimitiveVisualShapeType.Cylinder<br />
1890 /// Only values greater than or equal to 0.0f are accepted.<br />
1893 /// <since_tizen> 3 </since_tizen>
1894 public float ScaleHeight
1898 return _scaleHeight ?? (3.0f);
1902 _scaleHeight = value;
1908 /// Gets or sets the scale of the radius of a cylinder.<br />
1909 /// If not specified, the default is 1.0f.<br />
1910 /// Applies to:<br />
1911 /// - PrimitiveVisualShapeType.Cylinder<br />
1912 /// Only values greater than or equal to 0.0f are accepted.<br />
1915 /// <since_tizen> 3 </since_tizen>
1916 public float ScaleRadius
1920 return _scaleRadius ?? (1.0f);
1924 _scaleRadius = value;
1930 /// Gets or sets the dimensions of a cuboid. Scales in the same fashion as a 9-patch image.<br />
1931 /// If not specified, the default is Vector3.One.<br />
1932 /// Applies to:<br />
1933 /// - PrimitiveVisualShapeType.Cube<br />
1934 /// - PrimitiveVisualShapeType.Octahedron<br />
1935 /// - PrimitiveVisualShapeType.BevelledCube<br />
1936 /// Each Vector3 parameter should be greater than or equal to 0.0f.<br />
1939 /// <since_tizen> 3 </since_tizen>
1940 public Vector3 ScaleDimensions
1944 return _scaleDimensions ?? (Vector3.One);
1948 _scaleDimensions = value;
1954 /// Gets or sets determines how bevelled the cuboid should be, based off the smallest dimension.<br />
1955 /// Bevel percentage ranges from 0.0 to 1.0. It affects the ratio of the outer face widths to the width of the overall cube.<br />
1956 /// If not specified, the default is 0.0f (no bevel).<br />
1957 /// Applies to:<br />
1958 /// - PrimitiveVisualShapeType.BevelledCube<br />
1959 /// The range is from 0.0f to 1.0f.<br />
1962 /// <since_tizen> 3 </since_tizen>
1963 public float BevelPercentage
1967 return _bevelPercentage ?? (0.0f);
1971 _bevelPercentage = value;
1977 /// Gets or sets descriptions of how smooth the bevelled edges should be.<br />
1978 /// If not specified, the default is 0.0f (sharp edges).<br />
1979 /// Applies to:<br />
1980 /// - PrimitiveVisualShapeType.BevelledCube<br />
1981 /// The range is from 0.0f to 1.0f.<br />
1984 /// <since_tizen> 3 </since_tizen>
1985 public float BevelSmoothness
1989 return _bevelSmoothness ?? (0.0f);
1993 _bevelSmoothness = value;
1999 /// Gets or sets the position, in the stage space, of the point light that applies lighting to the model.<br />
2000 /// This is based off the stage's dimensions, so using the width and the height of the stage halved will correspond to the center,
2001 /// and using all zeroes will place the light at the top-left corner.<br />
2002 /// If not specified, the default is an offset outwards from the center of the screen.<br />
2003 /// Applies to all shapes.<br />
2006 /// <since_tizen> 3 </since_tizen>
2007 public Vector3 LightPosition
2011 return _lightPosition;
2015 _lightPosition = value;
2021 /// Compose the out visual map.
2023 /// <since_tizen> 3 </since_tizen>
2024 protected override void ComposingPropertyMap()
2026 _outputVisualMap = new PropertyMap(); ;
2027 _outputVisualMap.Add(Visual.Property.Type, new PropertyValue((int)Visual.Type.Primitive));
2028 if (_shape != null) { _outputVisualMap.Add(PrimitiveVisualProperty.Shape, new PropertyValue((int)_shape)); }
2029 if (_mixColorForPrimitiveVisual != null) { _outputVisualMap.Add(PrimitiveVisualProperty.MixColor, new PropertyValue(_mixColorForPrimitiveVisual)); }
2030 if (_slices != null) { _outputVisualMap.Add(PrimitiveVisualProperty.Slices, new PropertyValue((int)_slices)); }
2031 if (_stacks != null) { _outputVisualMap.Add(PrimitiveVisualProperty.Stacks, new PropertyValue((int)_stacks)); }
2032 if (_scaleTopRadius != null) { _outputVisualMap.Add(PrimitiveVisualProperty.ScaleTopRadius, new PropertyValue((float)_scaleTopRadius)); }
2033 if (_scaleBottomRadius != null) { _outputVisualMap.Add(PrimitiveVisualProperty.ScaleBottomRadius, new PropertyValue((float)_scaleBottomRadius)); }
2034 if (_scaleHeight != null) { _outputVisualMap.Add(PrimitiveVisualProperty.ScaleHeight, new PropertyValue((float)_scaleHeight)); }
2035 if (_scaleRadius != null) { _outputVisualMap.Add(PrimitiveVisualProperty.ScaleRadius, new PropertyValue((float)_scaleRadius)); }
2036 if (_scaleDimensions != null) { _outputVisualMap.Add(PrimitiveVisualProperty.ScaleDimensions, new PropertyValue(_scaleDimensions)); }
2037 if (_bevelPercentage != null) { _outputVisualMap.Add(PrimitiveVisualProperty.BevelPercentage, new PropertyValue((float)_bevelPercentage)); }
2038 if (_bevelSmoothness != null) { _outputVisualMap.Add(PrimitiveVisualProperty.BevelSmoothness, new PropertyValue((float)_bevelSmoothness)); }
2039 if (_lightPosition != null) { _outputVisualMap.Add(PrimitiveVisualProperty.LightPosition, new PropertyValue(_lightPosition)); }
2040 if (_shader != null) { _outputVisualMap.Add((int)Visual.Property.Shader, new PropertyValue(_shader)); }
2041 if (_premultipliedAlpha != null) { _outputVisualMap.Add((int)Visual.Property.PremultipliedAlpha, new PropertyValue((bool)_premultipliedAlpha)); }
2042 if (_opacity != null) { _outputVisualMap.Add((int)Visual.Property.Opacity, new PropertyValue((float)_opacity)); }
2047 /// A class encapsulating the property map of the n-patch image visual.
2049 /// <since_tizen> 3 </since_tizen>
2050 public class NPatchVisual : VisualMap
2055 /// <since_tizen> 3 </since_tizen>
2056 public NPatchVisual() : base()
2060 private string _url = null;
2061 private bool? _borderOnly = null;
2062 private Rectangle _border = null;
2065 /// Gets or sets the URL of the image.<br />
2068 /// <since_tizen> 3 </since_tizen>
2083 /// Gets or sets whether to draw the borders only (If true).<br />
2084 /// If not specified, the default is false.<br />
2085 /// For n-patch images only.<br />
2088 /// <since_tizen> 3 </since_tizen>
2089 public bool BorderOnly
2093 return _borderOnly ?? false;
2097 _borderOnly = value;
2103 /// The border of the image is in the order: left, right, bottom, top.<br />
2104 /// For n-patch images only.<br />
2107 /// <since_tizen> 3 </since_tizen>
2108 public Rectangle Border
2122 /// Compose the out visual map.
2124 /// <since_tizen> 3 </since_tizen>
2125 protected override void ComposingPropertyMap()
2129 _outputVisualMap = new PropertyMap();
2130 _outputVisualMap.Add(Visual.Property.Type, new PropertyValue((int)Visual.Type.NPatch));
2131 _outputVisualMap.Add(NpatchImageVisualProperty.URL, new PropertyValue(_url));
2132 if (_borderOnly != null) { _outputVisualMap.Add(NpatchImageVisualProperty.BorderOnly, new PropertyValue((bool)_borderOnly)); }
2133 if (_border != null) { _outputVisualMap.Add(NpatchImageVisualProperty.Border, new PropertyValue(_border)); }
2134 if (_shader != null) { _outputVisualMap.Add((int)Visual.Property.Shader, new PropertyValue(_shader)); }
2135 if (_premultipliedAlpha != null) { _outputVisualMap.Add((int)Visual.Property.PremultipliedAlpha, new PropertyValue((bool)_premultipliedAlpha)); }
2136 if (_mixColor != null) { _outputVisualMap.Add((int)Visual.Property.MixColor, new PropertyValue(_mixColor)); }
2137 if (_opacity != null) { _outputVisualMap.Add((int)Visual.Property.Opacity, new PropertyValue((float)_opacity)); }
2143 /// A class encapsulating the property map of the SVG visual.
2145 /// <since_tizen> 3 </since_tizen>
2146 public class SVGVisual : VisualMap
2151 /// <since_tizen> 3 </since_tizen>
2152 public SVGVisual() : base()
2156 private string _url = null;
2159 /// The url of the svg resource.
2161 /// <since_tizen> 3 </since_tizen>
2176 /// Compose the out visual map.
2178 /// <since_tizen> 3 </since_tizen>
2179 protected override void ComposingPropertyMap()
2183 _outputVisualMap = new PropertyMap();
2184 _outputVisualMap.Add(Visual.Property.Type, new PropertyValue((int)Visual.Type.SVG));
2185 _outputVisualMap.Add(ImageVisualProperty.URL, new PropertyValue(_url));
2186 if (_shader != null) { _outputVisualMap.Add((int)Visual.Property.Shader, new PropertyValue(_shader)); }
2187 if (_premultipliedAlpha != null) { _outputVisualMap.Add((int)Visual.Property.PremultipliedAlpha, new PropertyValue((bool)_premultipliedAlpha)); }
2188 if (_mixColor != null) { _outputVisualMap.Add((int)Visual.Property.MixColor, new PropertyValue(_mixColor)); }
2189 if (_opacity != null) { _outputVisualMap.Add((int)Visual.Property.Opacity, new PropertyValue((float)_opacity)); }
2195 /// A class encapsulating the property map of the animated image (AGIF) visual.
2197 /// <since_tizen> 3 </since_tizen>
2198 public class AnimatedImageVisual : VisualMap
2203 /// <since_tizen> 3 </since_tizen>
2204 public AnimatedImageVisual() : base()
2208 private List<string> _urls = null;
2209 private int? _batchSize = null;
2210 private int? _cacheSize = null;
2211 private float? _frameDelay = null;
2214 /// Gets and Sets the url in the AnimatedImageVisual.
2216 /// <since_tizen> 3 </since_tizen>
2234 _urls = new List<string>();
2246 /// Gets and Sets the url list in the AnimatedImageVisual.
2248 /// <since_tizen> 4 </since_tizen>
2249 public List<string> URLS
2263 /// Gets and Sets the batch size for pre-loading images in the AnimatedImageVisual.
2265 /// <since_tizen> 4 </since_tizen>
2266 public int BatchSize
2270 return _batchSize ?? 1;
2280 /// Gets and Sets the cache size for loading images in the AnimatedImageVisual.
2282 /// <since_tizen> 4 </since_tizen>
2283 public int CacheSize
2287 return _cacheSize ?? 1;
2297 /// Gets and Sets The number of milliseconds between each frame in the AnimatedImageVisual.
2299 /// <since_tizen> 4 </since_tizen>
2300 public float FrameDelay
2304 return _frameDelay ?? 0.1f;
2308 _frameDelay = value;
2314 /// Compose the out visual map.
2316 /// <since_tizen> 3 </since_tizen>
2317 protected override void ComposingPropertyMap()
2321 _outputVisualMap = new PropertyMap();
2322 _outputVisualMap.Add(Visual.Property.Type, new PropertyValue((int)Visual.Type.AnimatedImage));
2323 if( _urls.Count == 1 )
2325 _outputVisualMap.Add(ImageVisualProperty.URL, new PropertyValue(_urls[0]));
2329 var urlArray = new PropertyArray();
2330 foreach( var url in _urls)
2332 urlArray.Add(new PropertyValue(url));
2334 _outputVisualMap.Add( ImageVisualProperty.URL, ( new PropertyValue( urlArray ) ) );
2336 if (_batchSize != null ) {_outputVisualMap.Add((int)ImageVisualProperty.BatchSize, new PropertyValue((int)_batchSize)); }
2337 if (_cacheSize != null ) {_outputVisualMap.Add((int)ImageVisualProperty.CacheSize, new PropertyValue((int)_cacheSize)); }
2338 if (_frameDelay != null ) {_outputVisualMap.Add((int)ImageVisualProperty.FrameDelay, new PropertyValue((float)_frameDelay)); }
2339 if (_shader != null) { _outputVisualMap.Add((int)Visual.Property.Shader, new PropertyValue(_shader)); }
2340 if (_premultipliedAlpha != null) { _outputVisualMap.Add((int)Visual.Property.PremultipliedAlpha, new PropertyValue((bool)_premultipliedAlpha)); }
2341 if (_mixColor != null) { _outputVisualMap.Add((int)Visual.Property.MixColor, new PropertyValue(_mixColor)); }
2342 if (_opacity != null) { _outputVisualMap.Add((int)Visual.Property.Opacity, new PropertyValue((float)_opacity)); }
2348 //temporary fix for TCT
2350 /// A class encapsulating the property map of the transition data.
2352 /// <since_tizen> 3 </since_tizen>
2353 public class VisualAnimator : VisualMap
2356 /// Create VisualAnimator object.
2358 /// <since_tizen> 3 </since_tizen>
2359 public VisualAnimator() : base()
2363 private string _alphaFunction = null;
2364 private int _startTime = 0;
2365 private int _endTime = 0;
2366 private string _target = null;
2367 private string _propertyIndex = null;
2368 private object _destinationValue = null;
2371 /// Sets and Gets the AlphaFunction of this transition.
2373 /// <since_tizen> 3 </since_tizen>
2374 public AlphaFunction.BuiltinFunctions AlphaFunction
2378 switch (_alphaFunction)
2381 return Tizen.NUI.AlphaFunction.BuiltinFunctions.Linear;
2383 return Tizen.NUI.AlphaFunction.BuiltinFunctions.Reverse;
2384 case "EASE_IN_SQUARE":
2385 return Tizen.NUI.AlphaFunction.BuiltinFunctions.EaseInSquare;
2386 case "EASE_OUT_SQUARE":
2387 return Tizen.NUI.AlphaFunction.BuiltinFunctions.EaseOutSquare;
2389 return Tizen.NUI.AlphaFunction.BuiltinFunctions.EaseIn;
2391 return Tizen.NUI.AlphaFunction.BuiltinFunctions.EaseOut;
2393 return Tizen.NUI.AlphaFunction.BuiltinFunctions.EaseInOut;
2394 case "EASE_IN_SINE":
2395 return Tizen.NUI.AlphaFunction.BuiltinFunctions.EaseInSine;
2396 case "EASE_OUT_SINE":
2397 return Tizen.NUI.AlphaFunction.BuiltinFunctions.EaseOutSine;
2398 case "EASE_IN_OUT_SINE":
2399 return Tizen.NUI.AlphaFunction.BuiltinFunctions.EaseInOutSine;
2401 return Tizen.NUI.AlphaFunction.BuiltinFunctions.Bounce;
2403 return Tizen.NUI.AlphaFunction.BuiltinFunctions.Sin;
2404 case "EASE_OUT_BACK":
2405 return Tizen.NUI.AlphaFunction.BuiltinFunctions.EaseOutBack;
2407 return Tizen.NUI.AlphaFunction.BuiltinFunctions.Default;
2414 case Tizen.NUI.AlphaFunction.BuiltinFunctions.Linear:
2416 _alphaFunction = "LINEAR";
2419 case Tizen.NUI.AlphaFunction.BuiltinFunctions.Reverse:
2421 _alphaFunction = "REVERSE";
2424 case Tizen.NUI.AlphaFunction.BuiltinFunctions.EaseInSquare:
2426 _alphaFunction = "EASE_IN_SQUARE";
2429 case Tizen.NUI.AlphaFunction.BuiltinFunctions.EaseOutSquare:
2431 _alphaFunction = "EASE_OUT_SQUARE";
2434 case Tizen.NUI.AlphaFunction.BuiltinFunctions.EaseIn:
2436 _alphaFunction = "EASE_IN";
2439 case Tizen.NUI.AlphaFunction.BuiltinFunctions.EaseOut:
2441 _alphaFunction = "EASE_OUT";
2444 case Tizen.NUI.AlphaFunction.BuiltinFunctions.EaseInOut:
2446 _alphaFunction = "EASE_IN_OUT";
2449 case Tizen.NUI.AlphaFunction.BuiltinFunctions.EaseInSine:
2451 _alphaFunction = "EASE_IN_SINE";
2454 case Tizen.NUI.AlphaFunction.BuiltinFunctions.EaseOutSine:
2456 _alphaFunction = "EASE_OUT_SINE";
2459 case Tizen.NUI.AlphaFunction.BuiltinFunctions.EaseInOutSine:
2461 _alphaFunction = "EASE_IN_OUT_SINE";
2464 case Tizen.NUI.AlphaFunction.BuiltinFunctions.Bounce:
2466 _alphaFunction = "BOUNCE";
2469 case Tizen.NUI.AlphaFunction.BuiltinFunctions.Sin:
2471 _alphaFunction = "SIN";
2474 case Tizen.NUI.AlphaFunction.BuiltinFunctions.EaseOutBack:
2476 _alphaFunction = "EASE_OUT_BACK";
2481 _alphaFunction = "DEFAULT";
2489 /// Sets and Gets the StartTime of this transition.
2491 /// <since_tizen> 3 </since_tizen>
2492 public int StartTime
2505 /// Sets and Gets the EndTime of this transition.
2507 /// <since_tizen> 3 </since_tizen>
2521 /// Sets and Gets the Target of this transition.
2523 /// <since_tizen> 3 </since_tizen>
2524 public string Target
2537 /// Sets and Gets the PropertyIndex of this transition.
2539 /// <since_tizen> 3 </since_tizen>
2540 public string PropertyIndex
2544 return _propertyIndex;
2548 _propertyIndex = value;
2553 /// Sets and Gets the DestinationValue of this transition.
2555 /// <since_tizen> 3 </since_tizen>
2556 public object DestinationValue
2560 return _destinationValue;
2564 _destinationValue = value;
2569 /// Compose the out visual map.
2571 /// <since_tizen> 3 </since_tizen>
2572 protected override void ComposingPropertyMap()
2574 PropertyMap _animator = new PropertyMap();
2575 _animator.Add("alphaFunction", new PropertyValue(_alphaFunction));
2577 PropertyMap _timePeriod = new PropertyMap();
2578 _timePeriod.Add("duration", new PropertyValue((_endTime - _startTime) / 1000.0f));
2579 _timePeriod.Add("delay", new PropertyValue(_startTime / 1000.0f));
2580 _animator.Add("timePeriod", new PropertyValue(_timePeriod));
2582 StringBuilder sb = new StringBuilder(_propertyIndex);
2583 sb[0] = (char)(sb[0] | 0x20);
2584 string _str = sb.ToString();
2586 PropertyValue val = PropertyValue.CreateFromObject(_destinationValue);
2588 PropertyMap _transition = new PropertyMap();
2589 _transition.Add("target", new PropertyValue(_target));
2590 _transition.Add("property", new PropertyValue(_str));
2591 _transition.Add("targetValue", val);
2592 _transition.Add("animator", new PropertyValue(_animator));
2594 _outputVisualMap = _transition;
2597 //temporary fix for TCT