[NUI] Add a new WindowLayout Sample
[platform/core/csapi/tizenfx.git] / test / Tizen.NUI.UIThread / Tizen.NUI.UIThread.cs
1 
2 using Tizen.Applications;
3 using Tizen.NUI;
4 using Tizen.NUI.Components;
5 using Tizen.NUI.BaseComponents;
6
7 namespace UIThreadApp
8 {
9     public class AppCoreTask : CoreTask
10     {
11         public override void OnCreate()
12         {
13             Tizen.Log.Info("UIThreadApp", "CoreTask OnCreate");
14         }
15
16         public override void OnTerminate()
17         {
18             Tizen.Log.Info("UIThreadApp", "CoreTask OnTerminate");
19         }
20
21         public override void OnAppControlReceived(AppControlReceivedEventArgs e)
22         {
23             Tizen.Log.Info("UIThreadApp", "CoreTask OnAppControlReceived " + e.ReceivedAppControl.ApplicationId);
24         }
25
26         public override void OnLowMemory(LowMemoryEventArgs e)
27         {
28             Tizen.Log.Info("UIThreadApp", "CoreTask OnLowMemory " + e.LowMemoryStatus);
29         }
30
31         public override void OnLowBattery(LowBatteryEventArgs e)
32         {
33             Tizen.Log.Info("UIThreadApp", "CoreTask OnCreate " + e.LowBatteryStatus);
34         }
35
36         public override void OnLocaleChanged(LocaleChangedEventArgs e)
37         {
38             Tizen.Log.Info("UIThreadApp", "CoreTask OnLocaleChanged " + e.Locale);
39         }
40
41         public override void OnRegionFormatChanged(RegionFormatChangedEventArgs e)
42         {
43             Tizen.Log.Info("UIThreadApp", "CoreTask OnRegionFormatChanged " + e.Region);
44         }
45
46         public override void OnDeviceOrientationChanged(DeviceOrientationEventArgs e)
47         {
48             Tizen.Log.Info("UIThreadApp", "CoreTask OnDeviceOrientationChanged " + e.DeviceOrientation);
49         }
50     }
51
52     class Program : NUIApplication
53     {
54         private View root;
55         private Control control;
56
57         public Program(string styleSheet, WindowMode windowMode, CoreTask task) : base(styleSheet, windowMode, task)
58         {
59         }
60
61         protected override void OnCreate()
62         {
63             Tizen.Log.Info("UIThreadApp", "NUIApplication OnCreate");
64             base.OnCreate();
65             Initialize();
66         }
67
68         protected override void OnLocaleChanged(LocaleChangedEventArgs e)
69         {
70             Tizen.Log.Info("UIThreadApp", "NUIApplication OnLocaleChanged " + e.Locale);
71         }
72
73         protected override void OnLowBattery(LowBatteryEventArgs e)
74         {
75             Tizen.Log.Info("UIThreadApp", "NUIApplication OnLowBattery " + e.LowBatteryStatus);
76         }
77
78         protected override void OnLowMemory(LowMemoryEventArgs e)
79         {
80             Tizen.Log.Info("UIThreadApp", "NUIApplication OnLowMemory " + e.LowMemoryStatus);
81         }
82
83         protected override void OnRegionFormatChanged(RegionFormatChangedEventArgs e)
84         {
85             Tizen.Log.Info("UIThreadApp", "NUIApplication OnRegionFormatChanged " + e.Region);
86         }
87
88         protected override void OnDeviceOrientationChanged(DeviceOrientationEventArgs e)
89         {
90             Tizen.Log.Info("UIThreadApp", "NUIApplication OnDeviceOrientationChanged " + e.DeviceOrientation);
91         }
92
93         protected override void OnTerminate()
94         {
95             Tizen.Log.Info("UIThreadApp", "NUIApplication OnTerminate");
96         }
97
98         protected override void OnPause()
99         {
100             Tizen.Log.Info("UIThreadApp", "NUIApplication OnPause");
101         }
102
103         protected override void OnResume()
104         {
105             Tizen.Log.Info("UIThreadApp", "NUIApplication OnResume");
106         }
107
108         protected override void OnPreCreate()
109         {
110             Tizen.Log.Info("UIThreadApp", "NUIApplication OnPreCreate");
111         }
112
113         protected override void OnAppControlReceived(AppControlReceivedEventArgs e)
114         {
115             Tizen.Log.Info("UIThreadApp", "NUIApplication OnAppControlReceived " + e.ReceivedAppControl.ApplicationId);
116         }
117
118         void Initialize()
119         {
120
121             Window window = NUIApplication.GetDefaultWindow();
122
123             root = new View()
124             {
125                 Size = window.Size,
126                 BackgroundColor = new Color(0.8f, 0.8f, 0.8f, 0.6f),
127                 ParentOrigin = ParentOrigin.Center,
128                 PivotPoint = PivotPoint.Center,
129                 PositionUsesPivotPoint = true,
130             };
131             window.Add(root);
132
133             control = new Control()
134             {
135                 Size = new Size(100, 100),
136                 BackgroundColor = Color.Blue,
137                 ParentOrigin = ParentOrigin.Center,
138                 PivotPoint = PivotPoint.Center,
139                 PositionUsesPivotPoint = true,
140                 BoxShadow = new Shadow(0, new Color(0.2f, 0.2f, 0.2f, 0.3f), new Vector2(5, 5)),
141                 CornerRadius = 0.5f,
142                 CornerRadiusPolicy = VisualTransformPolicyType.Relative,
143             };
144
145             root.Add(control);
146
147             var animation = new Animation(2000);
148             animation.AnimateTo(control, "SizeWidth", 200, 0, 1000);
149             animation.AnimateTo(control, "SizeWidth", 100, 1000, 2000);
150             animation.Looping = true;
151             animation.Play();
152
153             NUIApplication.GetDefaultWindow().KeyEvent += OnKeyEvent;
154         }
155
156         public void OnKeyEvent(object sender, Window.KeyEventArgs e)
157         {
158             if (e.Key.State == Key.StateType.Down && (e.Key.KeyPressedName == "XF86Back" || e.Key.KeyPressedName == "Escape"))
159             {
160                 Exit();
161             }
162         }
163
164         static void Main(string[] args)
165         {
166             var app = new Program("", NUIApplication.WindowMode.Opaque, new AppCoreTask());
167             app.Run(args);
168         }
169     }
170 }