72f19263b5652f90494a61f7c394d4cf10dac21c
[platform/core/csapi/tizenfx.git] / test / Tizen.NUI.Seamless.Xaml / NUIBrokerSample / NUIBrokerSample.cs
1 using System;
2 using Tizen.Applications;
3 using Tizen.NUI;
4 using Tizen.NUI.BaseComponents;
5 using Tizen.NUI.Components;
6
7 namespace NUIBrokerSample
8 {
9     public class Program : NUIApplication
10     {
11         private Window window;
12         private View animationView;
13         private ObjectAnimationManager objectAnimationManager;
14
15         protected override void OnCreate()
16         {
17             base.OnCreate();
18             window = GetDefaultWindow();
19             window.KeyEvent += OnKeyEvent;
20
21             var xamlPage = CreateXamlPage();
22             animationView = xamlPage.AnimationView;
23             window.Add(xamlPage);
24
25             EnableAppTransition(true);
26
27             //Animating by default transition
28             //EnableAppTransition(false);
29
30             objectAnimationManager = new ObjectAnimationManager(xamlPage);
31         }
32
33         private XamlPage CreateXamlPage()
34         {
35             var page = new XamlPage(this);
36             page.PositionUsesPivotPoint = true;
37             page.ParentOrigin = ParentOrigin.TopLeft;
38             page.PivotPoint = PivotPoint.TopLeft;
39             page.BackgroundColor = new Color(0.9f, 0.9f, 0.9f, 1.0f);
40             page.Size = new Size(window.WindowSize.Width, window.WindowSize.Height, 0);
41
42             return page;
43         }
44
45         private void EnableAppTransition(bool isCustomAnimation = true)
46         {
47             TransitionOptions = new TransitionOptions(window);
48             TransitionOptions.AnimatedTarget = animationView;
49             TransitionOptions.EnableTransition = true;
50
51             if (isCustomAnimation)
52             {
53                 //Set Custom Animation
54                 TransitionOptions.ForwardAnimation = new SeamlessForward(400);
55                 TransitionOptions.BackwardAnimation = new SeamlessBackward(400);
56                 TransitionOptions.AnimationInitialized += TransitionOptions_AnimationInitialized;
57             }
58             else
59             {
60                 //Set Default Animation
61                 TransitionOptions.ForwardAnimation = new SlideIn(600);
62                 TransitionOptions.BackwardAnimation = new SlideOut(600);
63             }
64
65         }
66
67         private void TransitionOptions_AnimationInitialized(bool direction)
68         {
69             objectAnimationManager.StartIconAnimationByDirection(direction);
70         }
71
72         public void OnKeyEvent(object sender, Window.KeyEventArgs e)
73         {
74             if (e.Key.State == Key.StateType.Down && (e.Key.KeyPressedName == "XF86Back" || e.Key.KeyPressedName == "Escape"))
75             {
76                 Exit();
77             }
78         }
79
80         static void Main(string[] args)
81         {
82             var app = new Program();
83             app.Run(args);
84         }
85     }
86 }