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 ContentPage mainPage;
19 private ContentPage 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 ContentPage()
89 navigator.Push(mainPage);
91 View totalGreyView = new View()
93 Size = new Size(convertSize(50), convertSize(50)),
94 CornerRadius = convertSize(25),
95 BackgroundColor = ColorGrey,
96 TransitionOptions = new TransitionOptions()
98 TransitionTag = totalGreyTag,
102 totalGreyView.TouchEvent += (object sender, View.TouchEventArgs e) =>
104 if (e.Touch.GetState(0) == PointStateType.Down)
106 navigator.PushWithTransition(totalPage);
110 layoutView.Add(totalGreyView);
113 // ------------------------------------------------------
116 View totalPageRoot = new View()
118 WidthResizePolicy = ResizePolicyType.FillToParent,
119 SizeHeight = contentSize.Height,
122 View totalLayoutView = new View()
124 Layout = new GridLayout()
127 GridOrientation = GridLayout.Orientation.Vertical,
129 PositionUsesPivotPoint = true,
130 PivotPoint = PivotPoint.Center,
131 ParentOrigin = ParentOrigin.Center,
133 totalPageRoot.Add(totalLayoutView);
135 for (int i = 0; i < 3; ++i)
137 View sizeView = new View()
139 Size = new Size(contentSize.Width / 2.0f, contentSize.Height / 2.0f),
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);
150 View sizeGreyView = new View()
152 Size = new Size(contentSize.Width / 2.0f, contentSize.Height / 2.0f),
155 View totalGreyReturnView = new View()
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()
165 TransitionTag = totalGreyTag,
168 sizeGreyView.Add(totalGreyReturnView);
169 totalLayoutView.Add(sizeGreyView);
171 totalGreyReturnView.TouchEvent += (object sender, View.TouchEventArgs e) =>
173 if (e.Touch.GetState(0) == PointStateType.Down)
175 navigator.PopWithTransition();
180 totalPage = new ContentPage()
182 Content = totalPageRoot,
186 private View CreateButton(Color color, string colorTag, string greyTag, Page secondPage)
188 View colorView = new View()
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()
197 TransitionTag = colorTag,
201 View greyView = new View()
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()
213 TransitionTag = greyTag,
217 secondPage = CreatePage(color, colorTag, greyTag);
219 greyView.TouchEvent += (object sender, View.TouchEventArgs e) =>
221 if (e.Touch.GetState(0) == PointStateType.Down)
223 navigator.PushWithTransition(secondPage);
227 colorView.Add(greyView);
231 private View CreatePageScene(Color color, string colorTag, string greyTag)
233 View pageBackground = new View()
235 SizeWidth = contentSize.Width,
236 SizeHeight = contentSize.Height,
239 View colorView = new View()
241 WidthResizePolicy = ResizePolicyType.FillToParent,
242 HeightResizePolicy = ResizePolicyType.FillToParent,
243 CornerRadius = 0.05f,
244 CornerRadiusPolicy = VisualTransformPolicyType.Relative,
245 BackgroundColor = color,
246 TransitionOptions = new TransitionOptions()
248 TransitionTag = colorTag
252 View greyView = new View()
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,
261 CornerRadiusPolicy = VisualTransformPolicyType.Relative,
262 BackgroundColor = ColorGrey,
263 TransitionOptions = new TransitionOptions()
265 TransitionTag = greyTag
269 View whiteView = new View()
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,
278 CornerRadiusPolicy = VisualTransformPolicyType.Relative,
279 BackgroundColor = Color.AntiqueWhite,
281 pageBackground.Add(colorView);
282 pageBackground.Add(whiteView);
283 pageBackground.Add(greyView);
285 return pageBackground;
288 private Page CreatePage(Color color, string colorTag, string greyTag)
290 View pageRoot = new View()
292 WidthResizePolicy = ResizePolicyType.FillToParent,
293 HeightResizePolicy = ResizePolicyType.FillToParent
296 View pageBackground = CreatePageScene(color, colorTag, greyTag);
297 pageBackground.TouchEvent += (object sender, View.TouchEventArgs e) =>
299 if (e.Touch.GetState(0) == PointStateType.Down)
301 navigator.PopWithTransition();
305 pageRoot.Add(pageBackground);
307 Page page = new ContentPage()
314 public void Deactivate()