Revert "[NUI] Dialog and AlertDialog code refactoring with adding DialogPage"
[platform/core/csapi/tizenfx.git] / test / Tizen.NUI.Samples / Tizen.NUI.Samples / Samples / PageTransitionSample.cs
1 using System;
2 using Tizen.NUI.BaseComponents;
3 using Tizen.NUI.Components;
4
5 namespace Tizen.NUI.Samples
6 {
7     public class PageTransitionSample : IExample
8     {
9         private readonly string[,] Keywords = new string[3, 2]
10         {
11             {"red", "redGrey"},
12             {"green", "greenGrey"},
13             {"blue", "blueGrey"}
14         };
15         private readonly string totalGreyTag = "totalGrey";
16
17         private Navigator navigator;
18         private ContentPage mainPage;
19         private ContentPage redPage, greenPage, bluePage, totalPage;
20
21         private readonly Vector4 ColorGrey = new Vector4(0.82f, 0.80f, 0.78f, 1.0f);
22         private readonly Vector4 ColorBackground = new Vector4(0.99f, 0.94f, 0.83f, 1.0f);
23
24         private readonly Vector4[] TileColor = { new Color("#F5625D"), new Color("#7DFF83"), new Color("#7E72DF") };
25
26         private readonly Vector2 baseSize = new Vector2(480.0f, 800.0f);
27         private Vector2 contentSize;
28
29         private float magnification;
30
31         private float convertSize(float size)
32         {
33             return size * magnification;
34         }
35
36
37         public void Activate()
38         {
39             Window window = NUIApplication.GetDefaultWindow();
40             Vector2 windowSize = new Vector2((float)(window.Size.Width), (float)(window.Size.Height));
41             magnification = Math.Min(windowSize.X / baseSize.X, windowSize.Y / baseSize.Y);
42             contentSize = baseSize * magnification;
43
44             navigator = new Navigator()
45             {
46                 WidthResizePolicy = ResizePolicyType.FillToParent,
47                 HeightResizePolicy = ResizePolicyType.FillToParent,
48                 Transition = new Transition()
49                 {
50                     TimePeriod = new TimePeriod(0.4f),
51                     AlphaFunction = new AlphaFunction(AlphaFunction.BuiltinFunctions.EaseInOutSine),
52                 },
53             };
54             window.Add(navigator);
55
56             View mainRoot = new View()
57             {
58                 WidthResizePolicy = ResizePolicyType.FillToParent,
59                 HeightResizePolicy = ResizePolicyType.FillToParent
60             };
61
62             View layoutView = new View()
63             {
64                 PositionUsesPivotPoint = true,
65                 PivotPoint = PivotPoint.BottomCenter,
66                 ParentOrigin = ParentOrigin.BottomCenter,
67                 Layout = new LinearLayout()
68                 {
69                     LinearAlignment = LinearLayout.Alignment.Center,
70                     LinearOrientation = LinearLayout.Orientation.Horizontal,
71                     CellPadding = new Size(convertSize(60), convertSize(60)),
72                 },
73                 Position = new Position(0, -convertSize(30))
74             };
75             mainRoot.Add(layoutView);
76
77             View redButton = CreateButton(TileColor[0], Keywords[0, 0], Keywords[0, 1], redPage);
78             View greenButton = CreateButton(TileColor[1], Keywords[1, 0], Keywords[1, 1], greenPage);
79             View blueButton = CreateButton(TileColor[2], Keywords[2, 0], Keywords[2, 1], bluePage);
80
81             layoutView.Add(redButton);
82             layoutView.Add(greenButton);
83             layoutView.Add(blueButton);
84
85             mainPage = new ContentPage()
86             {
87                 Content = mainRoot,
88             };
89             navigator.Push(mainPage);
90
91             View totalGreyView = new View()
92             {
93                 Size = new Size(convertSize(50), convertSize(50)),
94                 CornerRadius = convertSize(25),
95                 BackgroundColor = ColorGrey,
96                 TransitionOptions = new TransitionOptions()
97                 {
98                     TransitionTag = totalGreyTag,
99                 }
100             };
101
102             totalGreyView.TouchEvent += (object sender, View.TouchEventArgs e) =>
103             {
104                 if (e.Touch.GetState(0) == PointStateType.Down)
105                 {
106                     navigator.PushWithTransition(totalPage);
107                 }
108                 return true;
109             };
110             layoutView.Add(totalGreyView);
111
112
113             // ------------------------------------------------------
114
115
116             View totalPageRoot = new View()
117             {
118                 WidthResizePolicy = ResizePolicyType.FillToParent,
119                 SizeHeight = contentSize.Height,
120             };
121
122             View totalLayoutView = new View()
123             {
124                 Layout = new GridLayout()
125                 {
126                     Rows = 2,
127                     GridOrientation = GridLayout.Orientation.Vertical,
128                 },
129                 PositionUsesPivotPoint = true,
130                 PivotPoint = PivotPoint.Center,
131                 ParentOrigin = ParentOrigin.Center,
132             };
133             totalPageRoot.Add(totalLayoutView);
134
135             for (int i = 0; i < 3; ++i)
136             {
137                 View sizeView = new View()
138                 {
139                     Size = new Size(contentSize.Width / 2.0f, contentSize.Height / 2.0f),
140                 };
141                 View smallView = CreatePageScene(TileColor[i], Keywords[i, 0], Keywords[i, 1]);
142                 smallView.Scale = new Vector3(0.45f, 0.45f, 1.0f);
143                 smallView.PositionUsesPivotPoint = true;
144                 smallView.PivotPoint = PivotPoint.Center;
145                 smallView.ParentOrigin = ParentOrigin.Center;
146                 sizeView.Add(smallView);
147                 totalLayoutView.Add(sizeView);
148             }
149
150             View sizeGreyView = new View()
151             {
152                 Size = new Size(contentSize.Width / 2.0f, contentSize.Height / 2.0f),
153             };
154
155             View totalGreyReturnView = new View()
156             {
157                 PositionUsesPivotPoint = true,
158                 PivotPoint = PivotPoint.Center,
159                 ParentOrigin = ParentOrigin.Center,
160                 Size = new Size(convertSize(70), convertSize(70)),
161                 CornerRadius = convertSize(20),
162                 BackgroundColor = ColorGrey,
163                 TransitionOptions = new TransitionOptions()
164                 {
165                     TransitionTag = totalGreyTag,
166                 }
167             };
168             sizeGreyView.Add(totalGreyReturnView);
169             totalLayoutView.Add(sizeGreyView);
170
171             totalGreyReturnView.TouchEvent += (object sender, View.TouchEventArgs e) =>
172             {
173                 if (e.Touch.GetState(0) == PointStateType.Down)
174                 {
175                     navigator.PopWithTransition();
176                 }
177                 return true;
178             };
179
180             totalPage = new ContentPage()
181             {
182                 Content = totalPageRoot,
183             };
184         }
185
186         private View CreateButton(Color color, string colorTag, string greyTag, Page secondPage)
187         {
188             View colorView = new View()
189             {
190                 Size = new Size(convertSize(50), convertSize(50)),
191                 CornerRadius = 0.45f,
192                 CornerRadiusPolicy = VisualTransformPolicyType.Relative,
193                 BackgroundColor = color,
194                 Orientation = new Rotation(new Radian((float)Math.PI / 2.0f), Vector3.ZAxis),
195                 TransitionOptions = new TransitionOptions()
196                 {
197                     TransitionTag = colorTag,
198                 },
199             };
200
201             View greyView = new View()
202             {
203                 PositionUsesPivotPoint = true,
204                 PivotPoint = PivotPoint.Center,
205                 ParentOrigin = ParentOrigin.Center,
206                 Size = new Size(convertSize(40), convertSize(40)),
207                 CornerRadius = 0.45f,
208                 CornerRadiusPolicy = VisualTransformPolicyType.Relative,
209                 BackgroundColor = ColorGrey,
210                 Orientation = new Rotation(new Radian(-(float)Math.PI / 2.0f), Vector3.ZAxis),
211                 TransitionOptions = new TransitionOptions()
212                 {
213                     TransitionTag = greyTag,
214                 }
215             };
216
217             secondPage = CreatePage(color, colorTag, greyTag);
218
219             greyView.TouchEvent += (object sender, View.TouchEventArgs e) =>
220             {
221                 if (e.Touch.GetState(0) == PointStateType.Down)
222                 {
223                     navigator.PushWithTransition(secondPage);
224                 }
225                 return true;
226             };
227             colorView.Add(greyView);
228             return colorView;
229         }
230
231         private View CreatePageScene(Color color, string colorTag, string greyTag)
232         {
233             View pageBackground = new View()
234             {
235                 SizeWidth = contentSize.Width,
236                 SizeHeight = contentSize.Height,
237             };
238
239             View colorView = new View()
240             {
241                 WidthResizePolicy = ResizePolicyType.FillToParent,
242                 HeightResizePolicy = ResizePolicyType.FillToParent,
243                 CornerRadius = 0.05f,
244                 CornerRadiusPolicy = VisualTransformPolicyType.Relative,
245                 BackgroundColor = color,
246                 TransitionOptions = new TransitionOptions()
247                 {
248                     TransitionTag = colorTag
249                 }
250             };
251
252             View greyView = new View()
253             {
254                 PositionUsesPivotPoint = true,
255                 PivotPoint = PivotPoint.TopCenter,
256                 ParentOrigin = ParentOrigin.TopCenter,
257                 Position = new Position(0, convertSize(80)),
258                 SizeWidth = contentSize.Width * 0.7f,
259                 SizeHeight = contentSize.Height * 0.06f,
260                 CornerRadius = 0.1f,
261                 CornerRadiusPolicy = VisualTransformPolicyType.Relative,
262                 BackgroundColor = ColorGrey,
263                 TransitionOptions = new TransitionOptions()
264                 {
265                     TransitionTag = greyTag
266                 }
267             };
268
269             View whiteView = new View()
270             {
271                 PositionUsesPivotPoint = true,
272                 PivotPoint = PivotPoint.BottomCenter,
273                 ParentOrigin = ParentOrigin.BottomCenter,
274                 Position = new Position(0, -convertSize(60)),
275                 SizeWidth = contentSize.Width * 0.75f,
276                 SizeHeight = contentSize.Height * 0.7f,
277                 CornerRadius = 0.1f,
278                 CornerRadiusPolicy = VisualTransformPolicyType.Relative,
279                 BackgroundColor = Color.AntiqueWhite,
280             };
281             pageBackground.Add(colorView);
282             pageBackground.Add(whiteView);
283             pageBackground.Add(greyView);
284
285             return pageBackground;
286         }
287
288         private Page CreatePage(Color color, string colorTag, string greyTag)
289         {
290             View pageRoot = new View()
291             {
292                 WidthResizePolicy = ResizePolicyType.FillToParent,
293                 HeightResizePolicy = ResizePolicyType.FillToParent
294             };
295
296             View pageBackground = CreatePageScene(color, colorTag, greyTag);
297             pageBackground.TouchEvent += (object sender, View.TouchEventArgs e) =>
298             {
299                 if (e.Touch.GetState(0) == PointStateType.Down)
300                 {
301                     navigator.PopWithTransition();
302                 }
303                 return true;
304             };
305             pageRoot.Add(pageBackground);
306
307             Page page = new ContentPage()
308             {
309                 Content = pageRoot,
310             };
311             return page;
312         }
313
314         public void Deactivate()
315         {
316         }
317     }
318 }