2 using Tizen.NUI.BaseComponents;
3 using Tizen.NUI.Components;
5 namespace Tizen.NUI.Samples
7 public class PageTransitionSample : IExample
9 private readonly string[,] Keywords = new string[3, 2]
12 {"green", "greenGrey"},
15 private readonly string totalGreyTag = "totalGrey";
17 private Navigator navigator;
18 private Page mainPage;
19 private Page redPage, greenPage, bluePage, totalPage;
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);
24 private readonly Vector4[] TileColor = { new Color("#F5625D"), new Color("#7DFF83"), new Color("#7E72DF") };
26 private readonly Vector2 baseSize = new Vector2(480.0f, 800.0f);
27 private Vector2 contentSize;
29 private float magnification;
31 private float convertSize(float size)
33 return size * magnification;
37 public void Activate()
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;
44 navigator = new Navigator()
46 WidthResizePolicy = ResizePolicyType.FillToParent,
47 HeightResizePolicy = ResizePolicyType.FillToParent,
48 Transition = new Transition()
50 TimePeriod = new TimePeriod(0.4f),
51 AlphaFunction = new AlphaFunction(AlphaFunction.BuiltinFunctions.EaseInOutSine),
54 window.Add(navigator);
56 View mainRoot = new View()
58 WidthResizePolicy = ResizePolicyType.FillToParent,
59 HeightResizePolicy = ResizePolicyType.FillToParent
62 View layoutView = new View()
64 PositionUsesPivotPoint = true,
65 PivotPoint = PivotPoint.BottomCenter,
66 ParentOrigin = ParentOrigin.BottomCenter,
67 Layout = new LinearLayout()
69 LinearAlignment = LinearLayout.Alignment.Center,
70 LinearOrientation = LinearLayout.Orientation.Horizontal,
71 CellPadding = new Size(convertSize(60), convertSize(60)),
73 Position = new Position(0, -convertSize(30))
75 mainRoot.Add(layoutView);
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);
81 layoutView.Add(redButton);
82 layoutView.Add(greenButton);
83 layoutView.Add(blueButton);
85 mainPage = new Page(mainRoot);
86 navigator.Push(mainPage);
88 View totalGreyView = new View()
90 Size = new Size(convertSize(50), convertSize(50)),
91 CornerRadius = convertSize(25),
92 BackgroundColor = ColorGrey,
93 TransitionOptions = new TransitionOptions()
95 TransitionTag = totalGreyTag,
99 totalGreyView.TouchEvent += (object sender, View.TouchEventArgs e) =>
101 if (e.Touch.GetState(0) == PointStateType.Down)
103 navigator.PushWithTransition(totalPage);
107 layoutView.Add(totalGreyView);
110 // ------------------------------------------------------
113 View totalPageRoot = new View()
115 WidthResizePolicy = ResizePolicyType.FillToParent,
116 SizeHeight = contentSize.Height,
119 View totalLayoutView = new View()
121 Layout = new GridLayout()
124 GridOrientation = GridLayout.Orientation.Vertical,
126 PositionUsesPivotPoint = true,
127 PivotPoint = PivotPoint.Center,
128 ParentOrigin = ParentOrigin.Center,
130 totalPageRoot.Add(totalLayoutView);
132 for (int i = 0; i < 3; ++i)
134 View sizeView = new View()
136 Size = new Size(contentSize.Width / 2.0f, contentSize.Height / 2.0f),
138 View smallView = CreatePageScene(TileColor[i], Keywords[i, 0], Keywords[i, 1]);
139 smallView.Scale = new Vector3(0.45f, 0.45f, 1.0f);
140 smallView.PositionUsesPivotPoint = true;
141 smallView.PivotPoint = PivotPoint.Center;
142 smallView.ParentOrigin = ParentOrigin.Center;
143 sizeView.Add(smallView);
144 totalLayoutView.Add(sizeView);
147 View sizeGreyView = new View()
149 Size = new Size(contentSize.Width / 2.0f, contentSize.Height / 2.0f),
152 View totalGreyReturnView = new View()
154 PositionUsesPivotPoint = true,
155 PivotPoint = PivotPoint.Center,
156 ParentOrigin = ParentOrigin.Center,
157 Size = new Size(convertSize(70), convertSize(70)),
158 CornerRadius = convertSize(20),
159 BackgroundColor = ColorGrey,
160 TransitionOptions = new TransitionOptions()
162 TransitionTag = totalGreyTag,
165 sizeGreyView.Add(totalGreyReturnView);
166 totalLayoutView.Add(sizeGreyView);
168 totalGreyReturnView.TouchEvent += (object sender, View.TouchEventArgs e) =>
170 if (e.Touch.GetState(0) == PointStateType.Down)
172 navigator.PopWithTransition();
177 totalPage = new Page(totalPageRoot);
180 private View CreateButton(Color color, string colorTag, string greyTag, Page secondPage)
182 View colorView = new View()
184 Size = new Size(convertSize(50), convertSize(50)),
185 CornerRadius = 0.45f,
186 CornerRadiusPolicy = VisualTransformPolicyType.Relative,
187 BackgroundColor = color,
188 Orientation = new Rotation(new Radian((float)Math.PI / 2.0f), Vector3.ZAxis),
189 TransitionOptions = new TransitionOptions()
191 TransitionTag = colorTag,
195 View greyView = new View()
197 PositionUsesPivotPoint = true,
198 PivotPoint = PivotPoint.Center,
199 ParentOrigin = ParentOrigin.Center,
200 Size = new Size(convertSize(40), convertSize(40)),
201 CornerRadius = 0.45f,
202 CornerRadiusPolicy = VisualTransformPolicyType.Relative,
203 BackgroundColor = ColorGrey,
204 Orientation = new Rotation(new Radian(-(float)Math.PI / 2.0f), Vector3.ZAxis),
205 TransitionOptions = new TransitionOptions()
207 TransitionTag = greyTag,
211 secondPage = CreatePage(color, colorTag, greyTag);
213 greyView.TouchEvent += (object sender, View.TouchEventArgs e) =>
215 if (e.Touch.GetState(0) == PointStateType.Down)
217 navigator.PushWithTransition(secondPage);
221 colorView.Add(greyView);
225 private View CreatePageScene(Color color, string colorTag, string greyTag)
227 View pageBackground = new View()
229 SizeWidth = contentSize.Width,
230 SizeHeight = contentSize.Height,
233 View colorView = new View()
235 WidthResizePolicy = ResizePolicyType.FillToParent,
236 HeightResizePolicy = ResizePolicyType.FillToParent,
237 CornerRadius = 0.05f,
238 CornerRadiusPolicy = VisualTransformPolicyType.Relative,
239 BackgroundColor = color,
240 TransitionOptions = new TransitionOptions()
242 TransitionTag = colorTag
246 View greyView = new View()
248 PositionUsesPivotPoint = true,
249 PivotPoint = PivotPoint.TopCenter,
250 ParentOrigin = ParentOrigin.TopCenter,
251 Position = new Position(0, convertSize(80)),
252 SizeWidth = contentSize.Width * 0.7f,
253 SizeHeight = contentSize.Height * 0.06f,
255 CornerRadiusPolicy = VisualTransformPolicyType.Relative,
256 BackgroundColor = ColorGrey,
257 TransitionOptions = new TransitionOptions()
259 TransitionTag = greyTag
263 View whiteView = new View()
265 PositionUsesPivotPoint = true,
266 PivotPoint = PivotPoint.BottomCenter,
267 ParentOrigin = ParentOrigin.BottomCenter,
268 Position = new Position(0, -convertSize(60)),
269 SizeWidth = contentSize.Width * 0.75f,
270 SizeHeight = contentSize.Height * 0.7f,
272 CornerRadiusPolicy = VisualTransformPolicyType.Relative,
273 BackgroundColor = Color.AntiqueWhite,
275 pageBackground.Add(colorView);
276 pageBackground.Add(whiteView);
277 pageBackground.Add(greyView);
279 return pageBackground;
282 private Page CreatePage(Color color, string colorTag, string greyTag)
284 View pageRoot = new View()
286 WidthResizePolicy = ResizePolicyType.FillToParent,
287 HeightResizePolicy = ResizePolicyType.FillToParent
290 View pageBackground = CreatePageScene(color, colorTag, greyTag);
291 pageBackground.TouchEvent += (object sender, View.TouchEventArgs e) =>
293 if (e.Touch.GetState(0) == PointStateType.Down)
295 navigator.PopWithTransition();
299 pageRoot.Add(pageBackground);
301 Page page = new Page(pageRoot);
305 public void Deactivate()