38adc9579ddfead7eaac25d237289a7d3b9add15
[platform/core/csapi/tizenfx.git] / src / Tizen.NUI / src / public / VisualConstants.cs
1 // Copyright (c) 2019 Samsung Electronics Co., Ltd.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14
15 using System.ComponentModel;
16
17 namespace Tizen.NUI
18 {
19     /// <summary>
20     /// Specifies the release policy types.<br />
21     /// Decides if the image should be cached in different conditions.
22     /// </summary>
23     /// <since_tizen> 5 </since_tizen>
24     public enum ReleasePolicyType
25     {
26         /// <summary>
27         /// Image is released when visual detached from scene.
28         /// </summary>
29         Detached = 0,
30         /// <summary>
31         /// Image is only released when visual is destroyed.
32         /// </summary>
33         Destroyed,
34         /// <summary>
35         /// Image is not released.
36         /// </summary>
37         Never
38     }
39
40     /// <summary>
41     /// Specifies the load policy types.<br />
42     /// Decides when the image texture should be loaded.
43     /// </summary>
44     /// <since_tizen> 5 </since_tizen>
45     public enum LoadPolicyType
46     {
47         /// <summary>
48         /// Load texture once the image source has been provided. Even if not being used yet.
49         /// </summary>
50         Immediate = 0,
51         /// <summary>
52         /// Only load texture once the visual is attached, when the image needs to be shown.
53         /// </summary>
54         Attached
55     }
56
57     /// <summary>
58     /// Enumeration for the text horizontal aligning.
59     /// </summary>
60     /// <since_tizen> 3 </since_tizen>
61     public enum HorizontalAlignment
62     {
63         /// <summary>
64         /// Texts place at the begin of horizontal direction.
65         /// </summary>
66         [Description("BEGIN")]
67         Begin,
68         /// <summary>
69         /// Texts place at the center of horizontal direction.
70         /// </summary>
71         [Description("CENTER")]
72         Center,
73         /// <summary>
74         /// Texts place at the end of horizontal direction.
75         /// </summary>
76         [Description("END")]
77         End
78     }
79
80     /// <summary>
81     /// Enumeration for the text horizontal aligning.
82     /// </summary>
83     /// <since_tizen> 3 </since_tizen>
84     public enum VerticalAlignment
85     {
86         /// <summary>
87         /// Texts place at the top of vertical direction.
88         /// </summary>
89         [Description("TOP")]
90         Top,
91         /// <summary>
92         /// Texts place at the center of vertical direction.
93         /// </summary>
94         [Description("CENTER")]
95         Center,
96         /// <summary>
97         /// Texts place at the bottom of vertical direction.
98         /// </summary>
99         [Description("BOTTOM")]
100         Bottom
101     }
102
103     /// <summary>
104     /// This specifies wrap mode types.<br />
105     /// WrapModeU and WrapModeV separately decide how the texture should be sampled when the u and v coordinate exceeds the range of 0.0 to 1.0.
106     /// </summary>
107     /// <since_tizen> 3 </since_tizen>
108     public enum WrapModeType
109     {
110         /// <summary>
111         /// The default value.
112         /// </summary>
113         Default = 0,
114         /// <summary>
115         /// Clamp to edge.
116         /// </summary>
117         ClampToEdge,
118         /// <summary>
119         /// Repeat.
120         /// </summary>
121         Repeat,
122         /// <summary>
123         /// Mirrored repeat.
124         /// </summary>
125         MirroredRepeat
126     }
127
128     /// <summary>
129     /// This specifies fitting mode types. Fitting options, used when resizing images to fit desired dimensions.<br />
130     /// A fitting mode controls the region of a loaded image to be mapped to the desired image rectangle.<br />
131     /// All fitting modes preserve the aspect ratio of the image contents.<br />
132     /// </summary>
133     /// <since_tizen> 3 </since_tizen>
134     public enum FittingModeType
135     {
136         /// <summary>
137         /// Full-screen image display: Limit loaded image resolution to device resolution using the ShrinkToFit mode.
138         /// </summary>
139         ShrinkToFit,
140         /// <summary>
141         /// Thumbnail gallery grid: Limit loaded image resolution to screen tile using the ScaleToFill mode.
142         /// </summary>
143         ScaleToFill,
144         /// <summary>
145         /// Image columns: Limit loaded image resolution to column width using the FitWidth mode.
146         /// </summary>
147         FitWidth,
148         /// <summary>
149         /// Image rows: Limit loaded image resolution to row height using the FitHeight mode.
150         /// </summary>
151         FitHeight,
152         /// <summary>
153         /// Thumbnail gallery grid: Limit loaded image resolution to screen tile using the Center mode.
154         /// </summary>
155         [EditorBrowsable(EditorBrowsableState.Never)]
156         Center,
157         /// <summary>
158         /// Thumbnail gallery grid: Limit loaded image resolution to screen tile using the ScaleToFill mode.
159         /// </summary>
160         [EditorBrowsable(EditorBrowsableState.Never)]
161         Fill
162     }
163
164     /// <summary>
165     /// This specifies sampling mode types. Filtering options are used when resizing images to sample original pixels.<br />
166     /// A SamplingMode controls how pixels in an input image are sampled and combined to generate each pixel of a destination image during scaling.<br />
167     /// NoFilter and Box modes do not guarantee that the output pixel array exactly matches the rectangle specified by the desired dimensions and the FittingMode,<br />
168     /// but all other filter modes do if the desired dimensions are not more than the raw dimensions of the input image file.<br />
169     /// </summary>
170     /// <since_tizen> 3 </since_tizen>
171     public enum SamplingModeType
172     {
173         /// <summary>
174         /// Iteratively box filter to generate an image of 1/2, 1/4, 1/8, etc. width and height and approximately the desired size. <br />
175         /// This is the default.
176         /// </summary>
177         Box,
178         /// <summary>
179         /// For each output pixel, read one input pixel.
180         /// </summary>
181         Nearest,
182         /// <summary>
183         /// For each output pixel, read a quad of four input pixels and write a weighted average of them.
184         /// </summary>
185         Linear,
186         /// <summary>
187         /// Iteratively box filter to generate an image of 1/2, 1/4, 1/8, etc. width and height and approximately the desired size, <br />
188         /// then for each output pixel, read one pixel from the last level of box filtering.<br />
189         /// </summary>
190         BoxThenNearest,
191         /// <summary>
192         /// Iteratively box filter to almost the right size, then for each output pixel, read four pixels from the last level of box filtering and write their weighted average.
193         /// </summary>
194         BoxThenLinear,
195         /// <summary>
196         /// No filtering is performed. If the SCALE_TO_FILL scaling mode is enabled, the borders of the image may be trimmed to match the aspect ratio of the desired dimensions.
197         /// </summary>
198         NoFilter,
199         /// <summary>
200         /// For caching algorithms where a client strongly prefers a cache-hit to reuse a cached image.
201         /// </summary>
202         DontCare
203     }
204
205     /// <summary>
206     /// The type of coordinate system for certain attributes of the points in a gradient.
207     /// </summary>
208     /// <since_tizen> 3 </since_tizen>
209     public enum GradientVisualUnitsType
210     {
211         /// <summary>
212         /// Uses the normals for the start, end, and center points, i.e., top-left is (-0.5, -0.5) and bottom-right is (0.5, 0.5).
213         /// </summary>
214         ObjectBoundingBox,
215         /// <summary>
216         /// Uses the user coordinates for the start, end, and center points, i.e., in a 200 by 200 control, top-left is (0, 0) and bottom-right is (200, 200).
217         /// </summary>
218         UserSpace
219     }
220
221     /// <summary>
222     /// This specifies SpreadMethod types.<br />
223     /// SpreadMethod defines what happens if the gradient starts or ends inside the bounds of the target rectangle.<br />
224     /// </summary>
225     /// <since_tizen> 3 </since_tizen>
226     public enum GradientVisualSpreadMethodType
227     {
228         /// <summary>
229         /// Uses the terminal colors of the gradient to fill the remainder of the quad.
230         /// </summary>
231         Pad,
232         /// <summary>
233         /// Reflects the gradient pattern start-to-end, end-to-start, start-to-end, etc. until the quad is filled.
234         /// </summary>
235         Reflect,
236         /// <summary>
237         /// Repeats the gradient pattern start-to-end, start-to-end, start-to-end, etc. until the quad is filled.
238         /// </summary>
239         Repeat
240     }
241
242     /// <summary>
243     /// The shading mode used by the mesh visual.
244     /// </summary>
245     /// <since_tizen> 3 </since_tizen>
246     public enum MeshVisualShadingModeValue
247     {
248         /// <summary>
249         /// *Simplest*. One color that is lit by ambient and diffuse lighting.
250         /// </summary>
251         TexturelessWithDiffuseLighting,
252         /// <summary>
253         /// Uses only the visual image textures provided with specular lighting in addition to ambient and diffuse lighting.
254         /// </summary>
255         TexturedWithSpecularLighting,
256         /// <summary>
257         /// Uses all textures provided including gloss, normal, and texture map along with specular, ambient, and diffuse lighting.
258         /// </summary>
259         TexturedWithDetailedSpecularLighting
260     }
261
262     /// <summary>
263     /// The primitive shape to render as a primitive visual.
264     /// </summary>
265     /// <since_tizen> 3 </since_tizen>
266     public enum PrimitiveVisualShapeType
267     {
268         /// <summary>
269         /// A perfectly round geometrical object in the three-dimensional space.
270         /// </summary>
271         Sphere,
272         /// <summary>
273         /// The area bound between two circles, i.e., a cone with the tip removed.
274         /// </summary>
275         ConicalFrustrum,
276         /// <summary>
277         /// Equivalent to a conical frustrum with the top radius of zero.
278         /// </summary>Equivalent to a conical frustrum with the top radius of zero.
279         Cone,
280         /// <summary>
281         /// Equivalent to a conical frustrum with the top radius of zero.
282         /// </summary>
283         Cylinder,
284         /// <summary>
285         /// Equivalent to a conical frustrum with equal radii for the top and bottom circles.
286         /// </summary>
287         Cube,
288         /// <summary>
289         /// Equivalent to a bevelled cube with a bevel percentage of zero.
290         /// </summary>
291         Octahedron,
292         /// <summary>
293         /// Equivalent to a bevelled cube with a bevel percentage of one.
294         /// </summary>
295         BevelledCube
296     }
297
298     /// <summary>
299     /// The values of this enum determine how the visual should fit into the view.
300     /// </summary>
301     /// <since_tizen> 5 </since_tizen>
302     public enum VisualFittingModeType
303     {
304         /// <summary>
305         /// The visual should be scaled to fit, preserving aspect ratio.
306         /// </summary>
307         FitKeepAspectRatio,
308         /// <summary>
309         /// The visual should be stretched to fill, not preserving aspect ratio.
310         /// </summary>
311         Fill,
312         /// <summary>
313         /// The visual should be scaled to fit, preserving aspect ratio. The visual will be fillled without empty area, and outside is cropped away.
314         /// </summary>
315         [EditorBrowsable(EditorBrowsableState.Never)]
316         OverFitKeepAspectRatio,
317         /// <summary>
318         /// The visual should keep original size of image. it is not scaled and not strecthed.
319         /// </summary>
320         [EditorBrowsable(EditorBrowsableState.Never)]
321         Center,
322         /// <summary>
323         /// The visual should be scaled to fit, preserving aspect ratio. Height is scaled proportionately to maintain aspect ratio.
324         /// </summary>
325         [EditorBrowsable(EditorBrowsableState.Never)]
326         FitHeight,
327         /// <summary>
328         /// The visual should be scaled to fit, preserving aspect ratio. WIDTH is scaled proportionately to maintain aspect ratio.
329         /// </summary>
330         [EditorBrowsable(EditorBrowsableState.Never)]
331         FitWidth,
332     }
333
334     /// <summary>
335     /// This specifies policy types that could be used by the transform for the offset or size.
336     /// </summary>
337     /// <since_tizen> 3 </since_tizen>
338     public enum VisualTransformPolicyType
339     {
340         /// <summary>
341         /// Relative to the control (percentage [0.0f to 1.0f] of the control).
342         /// </summary>
343         Relative = 0,
344         /// <summary>
345         /// Absolute value in world units.
346         /// </summary>
347         Absolute = 1
348     }
349
350     /// <summary>
351     /// This specifies all the transform property types.
352     /// </summary>
353     /// <since_tizen> 3 </since_tizen>
354     public enum VisualTransformPropertyType
355     {
356         /// <summary>
357         /// Offset of the visual, which can be either relative (percentage [0.0f to 1.0f] of the parent) or absolute (in world units).
358         /// </summary>
359         Offset,
360         /// <summary>
361         /// Size of the visual, which can be either relative (percentage [0.0f to 1.0f] of the parent) or absolute (in world units).
362         /// </summary>
363         Size,
364         /// <summary>
365         /// The origin of the visual within its control area.
366         /// </summary>
367         Origin,
368         /// <summary>
369         /// The anchor-point of the visual.
370         /// </summary>
371         AnchorPoint,
372         /// <summary>
373         /// Whether the x or y offset values are relative (percentage [0.0f to 1.0f] of the control) or absolute (in world units).
374         /// </summary>
375         OffsetPolicy,
376         /// <summary>
377         /// Whether the width or the height size values are relative (percentage [0.0f to 1.0f] of the control) or absolute (in world units).
378         /// </summary>
379         SizePolicy,
380         /// <summary>
381         /// Extra size value that will be added to the computed visual size.
382         /// </summary>
383         [EditorBrowsable(EditorBrowsableState.Never)]
384         ExtraSize,
385     }
386
387     /// <summary>
388     /// This specifies visual types.
389     /// </summary>
390     /// <since_tizen> 3 </since_tizen>
391     public struct Visual
392     {
393         /// <summary>
394         /// The index for the visual type.
395         /// </summary>
396         /// <since_tizen> 3 </since_tizen>
397         public enum Type
398         {
399             /// <summary>
400             /// Renders a solid color as an internal border to the control's quad.
401             /// </summary>
402             Border,
403             /// <summary>
404             /// Renders a solid color to the control's quad.
405             /// </summary>
406             Color,
407             /// <summary>
408             /// Renders a smooth transition of colors to the control's quad.
409             /// </summary>
410             Gradient,
411             /// <summary>
412             /// Renders an image into the control's quad.
413             /// </summary>
414             Image,
415             /// <summary>
416             /// Renders a mesh using an "obj" file, optionally with textures provided by an "mtl" file.
417             /// </summary>
418             Mesh,
419             /// <summary>
420             /// Renders a simple 3D shape, such as a cube or a sphere.
421             /// </summary>
422             Primitive,
423             /// <summary>
424             /// Renders a simple wire-frame outlining a quad.
425             /// </summary>
426             Wireframe,
427             /// <summary>
428             /// Renders text.
429             /// </summary>
430             Text,
431             /// <summary>
432             /// Renders an NPatch image.
433             /// </summary>
434             NPatch,
435             /// <summary>
436             /// Renders an SVG image.
437             /// </summary>
438             SVG,
439             /// <summary>
440             /// Renders a animated image (animated GIF).
441             /// </summary>
442             AnimatedImage,
443             /// <summary>
444             /// Renders an arc.
445             /// </summary>
446             [EditorBrowsable(EditorBrowsableState.Never)]
447             Arc = AnimatedImage + 3,
448         }
449
450         /// <summary>
451         /// This specifies visual properties.
452         /// </summary>
453         /// <since_tizen> 3 </since_tizen>
454         public struct Property
455         {
456             /// <summary>
457             /// Type.
458             /// </summary>
459             /// <since_tizen> 3 </since_tizen>
460             public static readonly int Type = NDalic.VISUAL_PROPERTY_TYPE;
461             /// <summary>
462             /// Shader.
463             /// </summary>
464             /// <since_tizen> 3 </since_tizen>
465             public static readonly int Shader = NDalic.VISUAL_PROPERTY_SHADER;
466             /// <summary>
467             /// Transform.
468             /// </summary>
469             /// <since_tizen> 3 </since_tizen>
470             public static readonly int Transform = NDalic.VISUAL_PROPERTY_TRANSFORM;
471             /// <summary>
472             /// PremultipliedAlpha.
473             /// </summary>
474             /// <since_tizen> 3 </since_tizen>
475             public static readonly int PremultipliedAlpha = NDalic.VISUAL_PROPERTY_PREMULTIPLIED_ALPHA;
476             /// <summary>
477             /// MixColor.
478             /// </summary>
479             /// <since_tizen> 3 </since_tizen>
480             public static readonly int MixColor = NDalic.VISUAL_PROPERTY_MIX_COLOR;
481             /// <summary>
482             /// Opacity.
483             /// </summary>
484             /// <since_tizen> 3 </since_tizen>
485             public static readonly int Opacity = NDalic.VISUAL_PROPERTY_MIX_COLOR + 1;
486             /// <summary>
487             /// The fitting mode of the visual.
488             /// </summary>
489             /// <since_tizen> 5 </since_tizen>
490             public static readonly int VisualFittingMode = NDalic.VISUAL_PROPERTY_MIX_COLOR + 2;
491             /// <summary>
492             /// The corner radius of the visual.
493             /// </summary>
494             [EditorBrowsable(EditorBrowsableState.Never)]
495             public static readonly int CornerRadius = NDalic.VISUAL_PROPERTY_MIX_COLOR + 3;
496         }
497
498         /// <summary>
499         /// This specifies shader properties.
500         /// </summary>
501         /// <since_tizen> 3 </since_tizen>
502         public struct ShaderProperty
503         {
504             /// <summary>
505             /// Vertex shader code
506             /// </summary>
507             /// <since_tizen> 3 </since_tizen>
508             public static readonly int VertexShader = NDalic.VISUAL_SHADER_VERTEX;
509             /// <summary>
510             /// Fragment shader code
511             /// </summary>
512             /// <since_tizen> 3 </since_tizen>
513             public static readonly int FragmentShader = NDalic.VISUAL_SHADER_FRAGMENT;
514             /// <summary>
515             /// How to subdivide the grid along X
516             /// </summary>
517             /// <since_tizen> 3 </since_tizen>
518             public static readonly int ShaderSubdivideGridX = NDalic.VISUAL_SHADER_SUBDIVIDE_GRID_X;
519             /// <summary>
520             /// How to subdivide the grid along Y
521             /// </summary>
522             /// <since_tizen> 3 </since_tizen>
523             public static readonly int ShaderSubdivideGridY = NDalic.VISUAL_SHADER_SUBDIVIDE_GRID_Y;
524             /// <summary>
525             /// Bitmask of hints
526             /// </summary>
527             /// <since_tizen> 3 </since_tizen>
528             public static readonly int ShaderHints = NDalic.VISUAL_SHADER_HINTS;
529         }
530
531         /// <summary>
532         /// This specifies visaul align types.
533         /// </summary>
534         /// <since_tizen> 3 </since_tizen>
535         public enum AlignType
536         {
537             /// <summary>
538             /// TopBegin
539             /// </summary>
540             /// <since_tizen> 3 </since_tizen>
541             TopBegin = 0,
542             /// <summary>
543             /// TopCenter
544             /// </summary>
545             /// <since_tizen> 3 </since_tizen>
546             TopCenter,
547             /// <summary>
548             /// TopEnd
549             /// </summary>
550             /// <since_tizen> 3 </since_tizen>
551             TopEnd,
552             /// <summary>
553             /// CenterBegin
554             /// </summary>
555             /// <since_tizen> 3 </since_tizen>
556             CenterBegin,
557             /// <summary>
558             /// Center
559             /// </summary>
560             /// <since_tizen> 3 </since_tizen>
561             Center,
562             /// <summary>
563             /// CenterEnd
564             /// </summary>
565             /// <since_tizen> 3 </since_tizen>
566             CenterEnd,
567             /// <summary>
568             /// BottomBegin
569             /// </summary>
570             /// <since_tizen> 3 </since_tizen>
571             BottomBegin,
572             /// <summary>
573             /// BottomCenter
574             /// </summary>
575             /// <since_tizen> 3 </since_tizen>
576             BottomCenter,
577             /// <summary>
578             /// BottomEnd
579             /// </summary>
580             /// <since_tizen> 3 </since_tizen>
581             BottomEnd
582         }
583     }
584
585     /// <summary>
586     /// This specifies properties of the BorderVisual.
587     /// </summary>
588     /// <since_tizen> 3 </since_tizen>
589     public struct BorderVisualProperty
590     {
591         /// <summary>
592         /// The color of the border.
593         /// </summary>
594         /// <since_tizen> 3 </since_tizen>
595         public static readonly int Color = NDalic.BORDER_VISUAL_COLOR;
596         /// <summary>
597         /// The width of the border (in pixels).
598         /// </summary>
599         /// <since_tizen> 3 </since_tizen>
600         public static readonly int Size = NDalic.BORDER_VISUAL_SIZE;
601         /// <summary>
602         /// Whether anti-aliasing of the border is required.
603         /// </summary>
604         /// <since_tizen> 3 </since_tizen>
605         public static readonly int AntiAliasing = NDalic.BORDER_VISUAL_ANTI_ALIASING;
606     }
607
608     /// <summary>
609     /// This specifies properties of the ColorVisual.
610     /// </summary>
611     /// <since_tizen> 3 </since_tizen>
612     public struct ColorVisualProperty
613     {
614         /// <summary>
615         /// The solid color required.
616         /// </summary>
617         /// <since_tizen> 3 </since_tizen>
618         public static readonly int MixColor = NDalic.COLOR_VISUAL_MIX_COLOR;
619         /// <summary>
620         /// Whether to render if the MixColor is transparent.
621         /// </summary>
622         /// <since_tizen> 5 </since_tizen>
623         public static readonly int RenderIfTransparent = NDalic.COLOR_VISUAL_MIX_COLOR + 1;
624         /// <summary>
625         /// Then radius value for the area to blur.
626         /// </summary>
627         [EditorBrowsable(EditorBrowsableState.Never)]
628         public static readonly int BlurRadius = NDalic.COLOR_VISUAL_MIX_COLOR + 2;
629     }
630
631     /// <summary>
632     /// This specifies properties of the GradientVisual.
633     /// </summary>
634     /// <since_tizen> 3 </since_tizen>
635     public struct GradientVisualProperty
636     {
637         /// <summary>
638         /// The start position of a linear gradient.
639         /// </summary>
640         /// <since_tizen> 3 </since_tizen>
641         public static readonly int StartPosition = NDalic.GRADIENT_VISUAL_START_POSITION;
642         /// <summary>
643         /// The end position of a linear gradient.
644         /// </summary>
645         /// <since_tizen> 3 </since_tizen>
646         public static readonly int EndPosition = NDalic.GRADIENT_VISUAL_END_POSITION;
647         /// <summary>
648         /// The center point of a radial gradient.
649         /// </summary>
650         /// <since_tizen> 3 </since_tizen>
651         public static readonly int Center = NDalic.GRADIENT_VISUAL_CENTER;
652         /// <summary>
653         /// The size of the radius of a radial gradient.
654         /// </summary>
655         /// <since_tizen> 3 </since_tizen>
656         public static readonly int Radius = NDalic.GRADIENT_VISUAL_RADIUS;
657         /// <summary>
658         /// All the stop offsets.
659         /// </summary>
660         /// <since_tizen> 3 </since_tizen>
661         public static readonly int StopOffset = NDalic.GRADIENT_VISUAL_STOP_OFFSET;
662         /// <summary>
663         /// The color at the stop offsets.
664         /// </summary>
665         /// <since_tizen> 3 </since_tizen>
666         public static readonly int StopColor = NDalic.GRADIENT_VISUAL_STOP_COLOR;
667         /// <summary>
668         /// Defines the coordinate system for certain attributes of the points in a gradient.
669         /// </summary>
670         /// <since_tizen> 3 </since_tizen>
671         public static readonly int Units = NDalic.GRADIENT_VISUAL_UNITS;
672         /// <summary>
673         /// Indicates what happens if the gradient starts or ends inside the bounds of the target rectangle.
674         /// </summary>
675         /// <since_tizen> 3 </since_tizen>
676         public static readonly int SpreadMethod = NDalic.GRADIENT_VISUAL_SPREAD_METHOD;
677     }
678
679     /// <summary>
680     /// This specifies properties of the ImageVisual.
681     /// </summary>
682     /// <since_tizen> 3 </since_tizen>
683     public struct ImageVisualProperty
684     {
685         /// <summary>
686         /// The URL of the image.
687         /// </summary>
688         /// <since_tizen> 3 </since_tizen>
689         public static readonly int URL = NDalic.IMAGE_VISUAL_URL;
690
691         /// <summary>
692         /// Fitting options, used when resizing images to fit desired dimensions.
693         /// </summary>
694         /// <since_tizen> 3 </since_tizen>
695         public static readonly int FittingMode = NDalic.IMAGE_VISUAL_FITTING_MODE;
696
697         /// <summary>
698         /// Filtering options, used when resizing images to sample original pixels.
699         /// </summary>
700         /// <since_tizen> 3 </since_tizen>
701         public static readonly int SamplingMode = NDalic.IMAGE_VISUAL_SAMPLING_MODE;
702
703         /// <summary>
704         /// The desired image width.
705         /// </summary>
706         /// <since_tizen> 3 </since_tizen>
707         public static readonly int DesiredWidth = NDalic.IMAGE_VISUAL_DESIRED_WIDTH;
708
709         /// <summary>
710         /// The desired image height.
711         /// </summary>
712         /// <since_tizen> 3 </since_tizen>
713         public static readonly int DesiredHeight = NDalic.IMAGE_VISUAL_DESIRED_HEIGHT;
714
715         /// <summary>
716         /// Whether to load the image synchronously.
717         /// </summary>
718         /// <since_tizen> 3 </since_tizen>
719         public static readonly int SynchronousLoading = NDalic.IMAGE_VISUAL_SYNCHRONOUS_LOADING;
720
721         /// <summary>
722         /// If true, only draws the borders.
723         /// </summary>
724         /// <since_tizen> 3 </since_tizen>
725         public static readonly int BorderOnly = NDalic.IMAGE_VISUAL_BORDER_ONLY;
726
727         /// <summary>
728         /// The image area to be displayed.
729         /// </summary>
730         /// <since_tizen> 3 </since_tizen>
731         public static readonly int PixelArea = NDalic.IMAGE_VISUAL_PIXEL_AREA;
732
733         /// <summary>
734         /// The wrap mode for u coordinate.
735         /// </summary>
736         /// <since_tizen> 3 </since_tizen>
737         public static readonly int WrapModeU = NDalic.IMAGE_VISUAL_WRAP_MODE_U;
738
739         /// <summary>
740         /// The wrap mode for v coordinate.
741         /// </summary>
742         /// <since_tizen> 3 </since_tizen>
743         public static readonly int WrapModeV = NDalic.IMAGE_VISUAL_WRAP_MODE_V;
744
745         /// <summary>
746         /// The border of the image.
747         /// </summary>
748         /// <since_tizen> 3 </since_tizen>
749         public static readonly int Border = NDalic.IMAGE_VISUAL_BORDER;
750
751         /// <summary>
752         /// Whether to use the texture atlas.
753         /// </summary>
754         /// <since_tizen> 5 </since_tizen>
755         public static readonly int Atlasing = NDalic.IMAGE_VISUAL_BORDER + 1;
756
757         /// <summary>
758         /// The URL of the alpha mask image.
759         /// </summary>
760         /// <since_tizen> 3 </since_tizen>
761         public static readonly int AlphaMaskURL = NDalic.IMAGE_VISUAL_ALPHA_MASK_URL;
762
763         /// <summary>
764         /// Defines the batch size for pre-loading images in the AnimatedImageVisual
765         /// </summary>
766         /// <since_tizen> 4 </since_tizen>
767         public static readonly int BatchSize = NDalic.IMAGE_VISUAL_BATCH_SIZE;
768
769         /// <summary>
770         /// Defines the cache size for loading images in the AnimatedImageVisual
771         /// </summary>
772         /// <since_tizen> 4 </since_tizen>
773         public static readonly int CacheSize = NDalic.IMAGE_VISUAL_CACHE_SIZE;
774
775         /// <summary>
776         /// The number of milliseconds between each frame in the AnimatedImageVisual
777         /// </summary>
778         /// <since_tizen> 4 </since_tizen>
779         public static readonly int FrameDelay = NDalic.IMAGE_VISUAL_FRAME_DELAY;
780
781         /// <summary>
782         /// The scale factor to apply to the content image before masking.
783         /// </summary>
784         /// <since_tizen> 4 </since_tizen>
785         public static readonly int MaskContentScale = NDalic.IMAGE_VISUAL_MASK_CONTENT_SCALE;
786
787         /// <summary>
788         /// Whether to crop image to mask or scale mask to fit image
789         /// </summary>
790         /// <since_tizen> 4 </since_tizen>
791         public static readonly int CropToMask = NDalic.IMAGE_VISUAL_CROP_TO_MASK;
792
793         /// <summary>
794         /// The policy to determine when an image should be loaded.
795         /// </summary>
796         /// <since_tizen> 5 </since_tizen>
797         public static readonly int LoadPolicy = NDalic.IMAGE_VISUAL_LOAD_POLICY;
798
799         /// <summary>
800         /// The policy to determine when an image should no longer be cached.
801         /// </summary>
802         /// <since_tizen> 5 </since_tizen>
803         public static readonly int ReleasePolicy = NDalic.IMAGE_VISUAL_RELEASE_POLICY;
804
805         /// <summary>
806         /// Determines if image orientation should be corrected so that the image displays as it was intended.
807         /// </summary>
808         /// <since_tizen> 5 </since_tizen>
809         public static readonly int OrientationCorrection = NDalic.IMAGE_VISUAL_ORIENTATION_CORRECTION;
810
811         /// <summary>
812         /// Overlays the auxiliary image on top of an NPatch image.
813         /// </summary>
814         /// <since_tizen> 5 </since_tizen>
815         public static readonly int AuxiliaryImageURL = NDalic.IMAGE_VISUAL_AUXILIARY_IMAGE_URL;
816
817         /// <summary>
818         /// Alpha value for the auxiliary image, without affecting the underlying NPatch image
819         /// </summary>
820         /// <since_tizen> 5 </since_tizen>
821         public static readonly int AuxiliaryImageAlpha = NDalic.IMAGE_VISUAL_AUXILIARY_IMAGE_ALPHA;
822
823         /// <summary>
824         /// The number of times the AnimatedImageVisual will be looped.
825         /// The default is -1. If the value is less than 0, loop unlimited. Otherwise, loop loopCount times.
826         /// </summary>
827         /// <since_tizen> 5 </since_tizen>
828         public static readonly int LoopCount = NDalic.IMAGE_VISUAL_LOOP_COUNT;
829
830         /// <summary>
831         /// @brief The playing range the AnimatedVectorImageVisual will use.
832         /// Animation will play between the values specified.The array can only have two values, and more will be ignored.
833         /// Both values should be between 0 and the total frame number, otherwise they will be ignored.
834         /// If the range provided is not in proper order (minimum, maximum), it will be reordered.
835         /// @details Name "playRange", Type Property::ARRAY of Property::INTEGER
836         /// @note Default 0 and the total frame number.
837         /// </summary>
838         /// <remarks>
839         /// Hidden API (Inhouse API)
840         /// </remarks>
841         [EditorBrowsable(EditorBrowsableState.Never)]
842         public static readonly int PlayRange = NDalic.IMAGE_VISUAL_ORIENTATION_CORRECTION + 4;
843
844         /// <summary>
845         /// @brief The playing state the AnimatedVectorImageVisual will use.
846         /// @details Name "playState", type PlayState (Property::INTEGER)
847         /// @note This property is read-only.
848         /// </summary>
849         /// <remarks>
850         /// Hidden API (Inhouse API)
851         /// </remarks>
852         [EditorBrowsable(EditorBrowsableState.Never)]
853         public static readonly int PlayState = NDalic.IMAGE_VISUAL_ORIENTATION_CORRECTION + 5;
854
855         /// <summary>
856         /// @brief The current frame number the AnimatedVectorImageVisual will use.
857         /// @details Name "currentFrameNumber", Type Property::INTEGER, between[0, the maximum frame number] or between the play range if specified
858         /// @note This property is read-only.
859         /// </summary>
860         /// <remarks>
861         /// Inhouse API
862         /// </remarks>
863         [EditorBrowsable(EditorBrowsableState.Never)]
864         public static readonly int CurrentFrameNumber = NDalic.IMAGE_VISUAL_ORIENTATION_CORRECTION + 6;
865
866         /// <summary>
867         /// @brief The total frame number the AnimatedVectorImageVisual will use.
868         /// @details Name "totalFrameNumber", Type Property::INTEGER.
869         /// @note This property is read-only.
870         /// </summary>
871         /// <remarks>
872         /// Inhouse API
873         /// </remarks>
874         [EditorBrowsable(EditorBrowsableState.Never)]
875         public static readonly int TotalFrameNumber = NDalic.IMAGE_VISUAL_ORIENTATION_CORRECTION + 7;
876
877         /// <summary>
878         /// @brief  The stop behavior the AnimatedVectorImageVisual will use.
879         /// @details Name "stopBehavior", Type StopBehavior::Type (Property::INTEGER)
880         /// @note Default value is StopBehavior::CURRENT_FRAME.
881         /// </summary>
882         /// <remarks>
883         /// Inhouse API
884         /// </remarks>
885         [EditorBrowsable(EditorBrowsableState.Never)]
886         public static readonly int StopBehavior = NDalic.IMAGE_VISUAL_ORIENTATION_CORRECTION + 8;
887
888         /// <summary>
889         /// @brief  The looping mode the AnimatedVectorImageVisual will use.
890         /// @details Name "loopingMode", Type LoopingMode::Type (Property::INTEGER) 
891         /// @note Default value is LoopingMode::RESTART.
892         /// </summary>
893         /// <remarks>
894         /// Inhouse API
895         /// </remarks>
896         [EditorBrowsable(EditorBrowsableState.Never)]
897         public static readonly int LoopingMode = NDalic.IMAGE_VISUAL_ORIENTATION_CORRECTION + 9;
898
899         /// <summary>
900         /// @brief The content information the AnimatedVectorImageVisual will use.
901         /// @details Name "contentInfo", Type Property::MAP.
902         /// The map contains the layer name as a key and Property::Array as a value.
903         /// And the array contains 2 integer values which are the frame numbers, the start frame number and the end frame number of the layer.
904         /// @note This property is read-only.
905         /// </summary>
906         /// <remarks>
907         /// Inhouse API
908         /// </remarks>
909         [EditorBrowsable(EditorBrowsableState.Never)]
910         public static readonly int ContentInfo = NDalic.IMAGE_VISUAL_ORIENTATION_CORRECTION + 10;
911     }
912
913     /// <summary>
914     /// This specifies properties of the MeshVisual.
915     /// </summary>
916     /// <since_tizen> 3 </since_tizen>
917     public struct MeshVisualProperty
918     {
919         /// <summary>
920         /// The location of the ".obj" file.
921         /// </summary>
922         /// <since_tizen> 3 </since_tizen>
923         public static readonly int ObjectURL = NDalic.MESH_VISUAL_OBJECT_URL;
924         /// <summary>
925         /// The location of the ".mtl" file.
926         /// </summary>
927         /// <since_tizen> 3 </since_tizen>
928         public static readonly int MaterialtURL = NDalic.MESH_VISUAL_MATERIAL_URL;
929         /// <summary>
930         /// Path to the directory the textures (including gloss and normal) are stored in.
931         /// </summary>
932         /// <since_tizen> 3 </since_tizen>
933         public static readonly int TexturesPath = NDalic.MESH_VISUAL_TEXTURES_PATH;
934         /// <summary>
935         /// Sets the type of shading mode that the mesh will use.
936         /// </summary>
937         /// <since_tizen> 3 </since_tizen>
938         public static readonly int ShadingMode = NDalic.MESH_VISUAL_SHADING_MODE;
939         /// <summary>
940         /// Whether to use mipmaps for textures or not.
941         /// </summary>
942         /// <since_tizen> 3 </since_tizen>
943         public static readonly int UseMipmapping = NDalic.MESH_VISUAL_USE_MIPMAPPING;
944         /// <summary>
945         /// Whether to average normals at each point to smooth textures or not.
946         /// </summary>
947         /// <since_tizen> 3 </since_tizen>
948         public static readonly int UseSoftNormals = NDalic.MESH_VISUAL_USE_SOFT_NORMALS;
949         /// <summary>
950         /// The position, in stage space, of the point light that applies lighting to the model.
951         /// </summary>
952         /// <since_tizen> 3 </since_tizen>
953         public static readonly int LightPosition = NDalic.MESH_VISUAL_LIGHT_POSITION;
954     }
955
956     /// <summary>
957     /// This specifies properties of the PrimitiveVisual.
958     /// </summary>
959     /// <since_tizen> 3 </since_tizen>
960     public struct PrimitiveVisualProperty
961     {
962         /// <summary>
963         /// The specific shape to render.
964         /// </summary>
965         /// <since_tizen> 3 </since_tizen>
966         public static readonly int Shape = NDalic.PRIMITIVE_VISUAL_SHAPE;
967         /// <summary>
968         /// The color of the shape.
969         /// </summary>
970         /// <since_tizen> 3 </since_tizen>
971         public static readonly int MixColor = NDalic.PRIMITIVE_VISUAL_MIX_COLOR;
972         /// <summary>
973         /// The number of slices as you go around the shape.
974         /// </summary>
975         /// <since_tizen> 3 </since_tizen>
976         public static readonly int Slices = NDalic.PRIMITIVE_VISUAL_SLICES;
977         /// <summary>
978         /// The number of stacks as you go down the shape.
979         /// </summary>
980         /// <since_tizen> 3 </since_tizen>
981         public static readonly int Stacks = NDalic.PRIMITIVE_VISUAL_STACKS;
982         /// <summary>
983         /// The scale of the radius of the top circle of a conical frustrum.
984         /// </summary>
985         /// <since_tizen> 3 </since_tizen>
986         public static readonly int ScaleTopRadius = NDalic.PRIMITIVE_VISUAL_SCALE_TOP_RADIUS;
987         /// <summary>
988         /// The scale of the radius of the bottom circle of a conical frustrum.
989         /// </summary>
990         /// <since_tizen> 3 </since_tizen>
991         public static readonly int ScaleBottomRadius = NDalic.PRIMITIVE_VISUAL_SCALE_BOTTOM_RADIUS;
992         /// <summary>
993         /// The scale of the height of a conic.
994         /// </summary>
995         /// <since_tizen> 3 </since_tizen>
996         public static readonly int ScaleHeight = NDalic.PRIMITIVE_VISUAL_SCALE_HEIGHT;
997         /// <summary>
998         /// The scale of the radius of a cylinder.
999         /// </summary>
1000         /// <since_tizen> 3 </since_tizen>
1001         public static readonly int ScaleRadius = NDalic.PRIMITIVE_VISUAL_SCALE_RADIUS;
1002         /// <summary>
1003         /// The dimensions of a cuboid. Scales in the same fashion as a 9-patch image.
1004         /// </summary>
1005         /// <since_tizen> 3 </since_tizen>
1006         public static readonly int ScaleDimensions = NDalic.PRIMITIVE_VISUAL_SCALE_DIMENSIONS;
1007         /// <summary>
1008         /// Determines how bevelled the cuboid should be, based off the smallest dimension.
1009         /// </summary>
1010         /// <since_tizen> 3 </since_tizen>
1011         public static readonly int BevelPercentage = NDalic.PRIMITIVE_VISUAL_BEVEL_PERCENTAGE;
1012         /// <summary>
1013         /// Defines how smooth the bevelled edges should be.
1014         /// </summary>
1015         /// <since_tizen> 3 </since_tizen>
1016         public static readonly int BevelSmoothness = NDalic.PRIMITIVE_VISUAL_BEVEL_SMOOTHNESS;
1017         /// <summary>
1018         /// The position, in stage space, of the point light that applies lighting to the model.
1019         /// </summary>
1020         /// <since_tizen> 3 </since_tizen>
1021         public static readonly int LightPosition = NDalic.PRIMITIVE_VISUAL_LIGHT_POSITION;
1022     }
1023
1024     /// <summary>
1025     /// This specifies properties of the TextVisual.
1026     /// </summary>
1027     /// <since_tizen> 3 </since_tizen>
1028     public struct TextVisualProperty
1029     {
1030         /// <summary>
1031         /// The text to display in UTF-8 format.
1032         /// </summary>
1033         /// <since_tizen> 3 </since_tizen>
1034         public static readonly int Text = NDalic.TEXT_VISUAL_TEXT;
1035         /// <summary>
1036         /// The requested font family to use.
1037         /// </summary>
1038         /// <since_tizen> 3 </since_tizen>
1039         public static readonly int FontFamily = NDalic.TEXT_VISUAL_FONT_FAMILY;
1040         /// <summary>
1041         /// The requested font style to use.
1042         /// </summary>
1043         /// <since_tizen> 3 </since_tizen>
1044         public static readonly int FontStyle = NDalic.TEXT_VISUAL_FONT_STYLE;
1045         /// <summary>
1046         /// The size of font in points.
1047         /// </summary>
1048         /// <since_tizen> 3 </since_tizen>
1049         public static readonly int PointSize = NDalic.TEXT_VISUAL_POINT_SIZE;
1050         /// <summary>
1051         /// The single-line or multi-line layout option.
1052         /// </summary>
1053         /// <since_tizen> 3 </since_tizen>
1054         public static readonly int MultiLine = NDalic.TEXT_VISUAL_MULTI_LINE;
1055         /// <summary>
1056         /// The line horizontal alignment.
1057         /// </summary>
1058         /// <since_tizen> 3 </since_tizen>
1059         public static readonly int HorizontalAlignment = NDalic.TEXT_VISUAL_HORIZONTAL_ALIGNMENT;
1060         /// <summary>
1061         /// The line vertical alignment.
1062         /// </summary>
1063         /// <since_tizen> 3 </since_tizen>
1064         public static readonly int VerticalAlignment = NDalic.TEXT_VISUAL_VERTICAL_ALIGNMENT;
1065         /// <summary>
1066         /// The color of the text.
1067         /// </summary>
1068         /// <since_tizen> 3 </since_tizen>
1069         public static readonly int TextColor = NDalic.TEXT_VISUAL_TEXT_COLOR;
1070         /// <summary>
1071         /// Whether the mark-up processing is enabled.
1072         /// </summary>
1073         /// <since_tizen> 3 </since_tizen>
1074         public static readonly int EnableMarkup = NDalic.TEXT_VISUAL_ENABLE_MARKUP;
1075         /// <summary>
1076         /// The shadow parameters.
1077         /// </summary>
1078         /// <since_tizen> 5 </since_tizen>
1079         public static readonly int Shadow = NDalic.TEXT_VISUAL_ENABLE_MARKUP + 1;
1080         /// <summary>
1081         /// The default underline parameters.
1082         /// </summary>
1083         /// <since_tizen> 5 </since_tizen>
1084         public static readonly int Underline = NDalic.TEXT_VISUAL_ENABLE_MARKUP + 2;
1085         /// <summary>
1086         /// The default outline parameters.
1087         /// </summary>
1088         /// <since_tizen> 5 </since_tizen>
1089         public static readonly int Outline = NDalic.TEXT_VISUAL_ENABLE_MARKUP + 3;
1090         /// <summary>
1091         /// The default text background parameters.
1092         /// </summary>
1093         /// <since_tizen> 5 </since_tizen>
1094         public static readonly int Background = NDalic.TEXT_VISUAL_ENABLE_MARKUP + 4;
1095     }
1096
1097     /// <summary>
1098     /// This specifies properties of the NpatchImageVisual.
1099     /// </summary>
1100     /// <since_tizen> 3 </since_tizen>
1101     public struct NpatchImageVisualProperty
1102     {
1103         /// <summary>
1104         /// The URL of the image.
1105         /// </summary>
1106         /// <since_tizen> 3 </since_tizen>
1107         public static readonly int URL = NDalic.IMAGE_VISUAL_URL;
1108         /// <summary>
1109         /// Fitting options, used when resizing images to fit desired dimensions.
1110         /// </summary>
1111         /// <since_tizen> 3 </since_tizen>
1112         public static readonly int FittingMode = NDalic.IMAGE_VISUAL_FITTING_MODE;
1113         /// <summary>
1114         /// Filtering options, used when resizing images to sample original pixels.
1115         /// </summary>
1116         /// <since_tizen> 3 </since_tizen>
1117         public static readonly int SamplingMode = NDalic.IMAGE_VISUAL_SAMPLING_MODE;
1118         /// <summary>
1119         /// The desired image width.
1120         /// </summary>
1121         /// <since_tizen> 3 </since_tizen>
1122         public static readonly int DesiredWidth = NDalic.IMAGE_VISUAL_DESIRED_WIDTH;
1123         /// <summary>
1124         /// The desired image height.
1125         /// </summary>
1126         /// <since_tizen> 3 </since_tizen>
1127         public static readonly int DesiredHeight = NDalic.IMAGE_VISUAL_DESIRED_HEIGHT;
1128         /// <summary>
1129         /// Whether to load the image synchronously.
1130         /// </summary>
1131         /// <since_tizen> 3 </since_tizen>
1132         public static readonly int SynchronousLoading = NDalic.IMAGE_VISUAL_SYNCHRONOUS_LOADING;
1133         /// <summary>
1134         /// If true, only draws the borders.
1135         /// </summary>
1136         /// <since_tizen> 3 </since_tizen>
1137         public static readonly int BorderOnly = NDalic.IMAGE_VISUAL_BORDER_ONLY;
1138         /// <summary>
1139         /// The image area to be displayed.
1140         /// </summary>
1141         /// <since_tizen> 3 </since_tizen>
1142         public static readonly int PixelArea = NDalic.IMAGE_VISUAL_PIXEL_AREA;
1143         /// <summary>
1144         /// The wrap mode for u coordinate.
1145         /// </summary>
1146         /// <since_tizen> 3 </since_tizen>
1147         public static readonly int WrapModeU = NDalic.IMAGE_VISUAL_WRAP_MODE_U;
1148         /// <summary>
1149         /// The wrap mode for v coordinate.
1150         /// </summary>
1151         /// <since_tizen> 3 </since_tizen>
1152         public static readonly int WrapModeV = NDalic.IMAGE_VISUAL_WRAP_MODE_V;
1153         /// <summary>
1154         /// The border of the image.
1155         /// </summary>
1156         /// <since_tizen> 3 </since_tizen>
1157         public static readonly int Border = NDalic.IMAGE_VISUAL_WRAP_MODE_V + 1;
1158     }
1159
1160     /// <summary>
1161     /// This specifies properties of the ArcVisual.
1162     /// </summary>
1163     internal struct ArcVisualProperty
1164     {
1165         /// <summary>
1166         /// The thickness of the arc.
1167         /// </summary>
1168         /// <remarks>The value is float type.</remarks>
1169         /// <remarks>This is mandatory property.</remarks>
1170         internal static readonly int Thickness = NDalic.IMAGE_VISUAL_URL;
1171
1172         /// <summary>
1173         /// The start angle where the arc begins in degrees.
1174         /// </summary>
1175         /// <remarks>The value is float type.</remarks>
1176         /// <remarks>The property of optional. The default value is 0.</remarks>
1177         internal static readonly int StartAngle = Thickness + 1;
1178
1179         /// <summary>
1180         /// The sweep angle of the arc in degrees.
1181         /// </summary>
1182         /// <remarks>The value is float type.</remarks>
1183         /// <remarks>The property of optional. The default value is 360.</remarks>
1184         internal static readonly int SweepAngle = Thickness + 2;
1185
1186         /// <summary>
1187         /// The cap style of the arc.
1188         /// </summary>
1189         /// <remarks>
1190         /// The value is integer type.
1191         /// The value 0 means butt, the arc does not extend beyond its two endpoints.
1192         /// The value 1 means round, the arc will be extended by a half circle with the center at the end.
1193         /// </remarks>
1194         /// <remarks>The property of optional. The default value is 0 (butt).</remarks>
1195         internal static readonly int Cap = Thickness + 3;
1196     }
1197 }