[NUI] Fix build warning[CA1000]
[platform/core/csapi/tizenfx.git] / src / Tizen.NUI / src / public / TransitionAnimations / TransitionAnimations.cs
1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Text;
5 using Tizen.NUI;
6 using Tizen.NUI.BaseComponents;
7
8 namespace Tizen.NUI
9 {
10     /// <summary>
11     /// Data of animation data for transition
12     /// </summary>
13     [EditorBrowsable(EditorBrowsableState.Never)]
14     public class TransitionAnimationData
15     {
16         /// <summary>
17         /// start time of animation
18         /// </summary>
19         [EditorBrowsable(EditorBrowsableState.Never)]
20         public int StartTime { get; set; }
21
22         /// <summary>
23         /// end time of animation
24         /// </summary>
25         [EditorBrowsable(EditorBrowsableState.Never)]
26         public int EndTime { get; set; }
27
28         /// <summary>
29         /// property of animation
30         /// </summary>
31         [EditorBrowsable(EditorBrowsableState.Never)]
32         public string Property { get; set; }
33
34         /// <summary>
35         /// destination value of animation
36         /// </summary>
37         [EditorBrowsable(EditorBrowsableState.Never)]
38         public string DestinationValue { get; set; }
39     }
40
41     /// <summary>
42     /// Transition animation effect
43     /// </summary>
44     [EditorBrowsable(EditorBrowsableState.Never)]
45     public class TransitionAnimation : IDisposable
46     {
47         private ImageViewStyle defaultImageStyle;
48         private List<TransitionAnimationData> animationDataList;
49         
50
51         /// <summary>
52         /// Create an instance of Transition.
53         /// </summary>
54         [EditorBrowsable(EditorBrowsableState.Never)]
55         public TransitionAnimation(int durationMilliSeconds)
56         {
57             DurationMilliSeconds = durationMilliSeconds;
58             if (animationDataList == null)
59             {
60                 animationDataList = new List<TransitionAnimationData>();
61             }
62         }
63
64         /// <summary>
65         /// total time of animation.
66         /// </summary>
67         [EditorBrowsable(EditorBrowsableState.Never)]
68         public int DurationMilliSeconds { get; set; }
69
70         /// <summary>
71         /// Default style of animate image view.
72         /// </summary>
73         [EditorBrowsable(EditorBrowsableState.Never)]
74         public List<TransitionAnimationData> AnimationDataList
75         {
76             get
77             {
78                 return animationDataList;
79             }
80         }
81
82
83         /// <summary>
84         /// Add data of transition animation
85         /// </summary>
86         [EditorBrowsable(EditorBrowsableState.Never)]
87         public void AddAnimationData(TransitionAnimationData data)
88         {
89             if (data == null)
90             {
91                 throw new ArgumentNullException(nameof(data));
92             }
93
94             animationDataList?.Add(data);
95         }
96
97         /// <summary>
98         /// Remove data of transition animation
99         /// </summary>
100         [EditorBrowsable(EditorBrowsableState.Never)]
101         public void RemoveAnimationData(TransitionAnimationData data)
102         {
103             animationDataList?.Remove(data);
104         }
105
106         /// <summary>
107         /// Clear data list of transition animation
108         /// </summary>
109         [EditorBrowsable(EditorBrowsableState.Never)]
110         public void ClearAnimationData()
111         {
112             animationDataList?.Clear();
113         }
114
115         /// <summary>
116         /// Setting default style of ImageView
117         /// </summary>
118         [EditorBrowsable(EditorBrowsableState.Never)]
119         public ImageViewStyle DefaultImageStyle
120         {
121             get
122             {
123                 if (defaultImageStyle == null)
124                 {
125                     defaultImageStyle = new ImageViewStyle();
126                     defaultImageStyle.Size = new Size(0, 0);
127                     defaultImageStyle.Position = new Position(0, 0);
128                     defaultImageStyle.ParentOrigin = ParentOrigin.Center;
129                     defaultImageStyle.PivotPoint = PivotPoint.Center;
130                     defaultImageStyle.PositionUsesPivotPoint = true;
131                 }
132                 return defaultImageStyle;
133             }
134             set
135             {
136                 defaultImageStyle = value;
137             }
138         }
139
140         [EditorBrowsable(EditorBrowsableState.Never)]
141         protected virtual void Dispose(bool disposing)
142         {
143             if (disposing)
144             {
145                 // Dispose managed resources.
146                 defaultImageStyle?.Dispose();
147             }
148             // Free native resources.
149         }
150
151         [EditorBrowsable(EditorBrowsableState.Never)]
152         public void Dispose()
153         {
154             Dispose(true);
155             GC.SuppressFinalize(this);
156         }
157     }
158
159     /// <summary>
160     /// Screen slides are transitions between one entire screen to another 
161     /// </summary>
162     [EditorBrowsable(EditorBrowsableState.Never)]
163     public class SlideIn : TransitionAnimation
164     {
165         private int defaultInitValue = 0;
166
167         /// <summary>
168         /// Create an instance of SlideIn.
169         /// </summary>
170         [EditorBrowsable(EditorBrowsableState.Never)]
171         public SlideIn(int durationMilliSeconds) : base(durationMilliSeconds)
172         {
173             defaultInitValue = -Window.Instance.GetWindowSize().Width;
174
175             DefaultImageStyle.Position = new Position(defaultInitValue, 0);
176             DefaultImageStyle.Size = Window.Instance.GetWindowSize();
177
178             TransitionAnimationData data = new TransitionAnimationData();
179             data.StartTime = 0;
180             data.EndTime = durationMilliSeconds;
181             data.Property = "PositionX";
182             data.DestinationValue = "0";
183             AddAnimationData(data);
184         }
185     }
186
187
188     /// <summary>
189     /// Screen slides are transitions between one entire screen to another 
190     /// </summary>
191     [EditorBrowsable(EditorBrowsableState.Never)]
192     public class SlideOut : TransitionAnimation
193     {
194         private int defaultInitValue = 0;
195
196         /// <summary>
197         /// Create an instance of SlideOut.
198         /// </summary>
199         [EditorBrowsable(EditorBrowsableState.Never)]
200         public SlideOut(int durationMilliSeconds) : base(durationMilliSeconds)
201         {
202             defaultInitValue = 0;
203
204             DefaultImageStyle.Position = new Position(defaultInitValue, 0);
205             DefaultImageStyle.Size = Window.Instance.GetWindowSize();
206
207             TransitionAnimationData data = new TransitionAnimationData();
208             data.StartTime = 0;
209             data.EndTime = durationMilliSeconds;
210             data.Property = "PositionX";
211             data.DestinationValue = Window.Instance.GetWindowSize().Width.ToString();
212             AddAnimationData(data);
213         }
214     }
215 }