061ab2c3be33dd735c31af42527b2f18c8949c9d
[platform/core/csapi/tizenfx.git] / test / Tizen.NUI.WidgetViewTest / 0.Template / Tizen.NUI.WidgetViewTest / SimpleWidgetViewApp.cs
1 /*
2  * Copyright (c) 2022 Samsung Electronics Co., Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17 using System;
18 using Tizen.NUI;
19 using Tizen.NUI.BaseComponents;
20 using Tizen.Applications;
21 namespace WidgetApplicationTemplate
22 {
23     class Program : NUIApplication
24     {
25         protected override void OnCreate()
26         {
27             base.OnCreate();
28             Initialize();
29         }
30         void Initialize()
31         {
32             Window window = GetDefaultWindow();
33
34             window.KeyEvent += OnKeyEvent;
35             window.TouchEvent += OnTouchEvent;
36             
37             rootView = new View();
38             rootView.BackgroundColor = Color.White;
39             rootView.Size = Window.Instance.Size;
40             rootView.PivotPoint = PivotPoint.Center;
41             window.GetDefaultLayer().Add(rootView);
42
43             TextLabel sampleLabel = new TextLabel("Widget Viewer ");
44             sampleLabel.FontFamily = "SamsungOneUI 500";
45             sampleLabel.PointSize = 8;
46             sampleLabel.TextColor = Color.Black;
47             sampleLabel.SizeWidth = 300;
48             sampleLabel.PivotPoint = PivotPoint.Center;
49             rootView.Add(sampleLabel);
50
51             Bundle bundle = new Bundle();
52             bundle.AddItem("COUNT", "1");
53             String encodedBundle = bundle.Encode();
54
55             widgetWidth = 500;
56             widgetHeight = 500;
57             mWidgetView = WidgetViewManager.Instance.AddWidget("class1@Tizen.NUI.WidgetTest", encodedBundle, widgetWidth, widgetHeight, 0.0f);
58             mWidgetView.Position = new Position(100,100);
59             window.GetDefaultLayer().Add(mWidgetView);
60
61             mWidgetView2 = WidgetViewManager.Instance.AddWidget("class2@Tizen.NUI.WidgetTest", encodedBundle, widgetWidth, widgetHeight, 0.0f);
62             mWidgetView2.Position = new Position(100, widgetHeight + 110);
63             window.GetDefaultLayer().Add(mWidgetView2);
64
65             mTimer = new Timer(4000);
66             mTimer.Tick += onTick;
67             mTimer.Start();
68
69             created = true;
70         }
71
72         private bool onTick(object o, Timer.TickEventArgs e)
73         {
74             Window window = GetDefaultWindow();
75             if(created)
76             {
77                 WidgetViewManager.Instance.RemoveWidget(mWidgetView2);
78                 mWidgetView2.Dispose();
79                 mWidgetView2 = null;
80                 created = false;
81             }
82             else
83             {
84                 Bundle bundle = new Bundle();
85                 bundle.AddItem("COUNT", "1");
86                 String encodedBundle = bundle.Encode();
87
88                 mWidgetView2 = WidgetViewManager.Instance.AddWidget("class2@Tizen.NUI.WidgetTest", encodedBundle, widgetWidth, widgetHeight, 0.0f);
89                 mWidgetView2.Position = new Position(100, widgetHeight + 110);
90                 window.GetDefaultLayer().Add(mWidgetView2);
91
92                 bundle.Dispose();
93                 bundle = null;
94                 created = true;
95             }
96             return true;
97         }
98
99         public void OnKeyEvent(object sender, Window.KeyEventArgs e)
100         {
101             if (e.Key.State == Key.StateType.Down )
102             {
103                 Tizen.Log.Info("NUI", "OnKeyEvent(View-Window) : " + e.Key.KeyPressedName + "\n");
104                 if (e.Key.KeyPressedName == "1")
105                 {
106                     widgetWidth += 200;
107                     widgetHeight += 200;
108                     if(widgetWidth > 1000 || widgetHeight > 1000)
109                     {
110                         widgetWidth = 200;
111                         widgetHeight = 200;
112                     }
113                     mWidgetView.Size2D = new Size2D(widgetWidth, widgetHeight);
114                 }
115
116             }
117         }
118         private void OnTouchEvent(object source, Window.TouchEventArgs e)
119         {
120         }
121         private void OnWidgetContentUpdatedCB(object sender, WidgetView.WidgetViewEventArgs e)
122         {
123             String encodedBundle = e.WidgetView.ContentInfo;
124             Bundle bundle = Bundle.Decode(encodedBundle);
125             string outString;
126             if (bundle.TryGetItem("WidgetKey", out outString))
127             {
128                 Tizen.Log.Info("NUI", "OnWidgetContentUpdatedCB : " + outString + "\n");
129             }
130
131         }
132
133         static void Main(string[] args)
134         {
135             var app = new Program();
136             app.Run(args);
137         }
138
139         private View rootView;
140         WidgetView mWidgetView;
141         WidgetView mWidgetView2;
142         int widgetWidth;
143         int widgetHeight;
144
145         Timer mTimer;
146         bool created;
147
148         Window mWindow;
149     }
150 }
151
152