6c199d3ab53c1b2a043d9f37b4b6a5dbec2435d2
[platform/core/csapi/nui.git] / NUISamples / NUISamples / NUISamples.Tizen / examples / visual-view-test.cs
1 /*
2  * Copyright (c) 2017 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
18 using System;
19 using System.Runtime.InteropServices;
20 using Tizen.NUI;
21 using Tizen.NUI.BaseComponents;
22 using Tizen.NUI.Constants;
23
24 namespace VisualViewTest
25 {
26     // An example of Visual View control.
27     class Example : NUIApplication
28     {
29         private VisualView _visualView = null;
30         private const string resources = "/home/owner/apps_rw/NUISamples.TizenTV/res";
31         private Window _window;
32
33         public Example() : base()
34         {
35         }
36
37         public Example(string stylesheet) : base(stylesheet)
38         {
39         }
40
41         public Example(string stylesheet, WindowMode windowMode) : base(stylesheet, windowMode)
42         {
43         }
44
45         protected override void OnCreate()
46         {
47             base.OnCreate();
48             Initialize();
49         }
50
51         private ImageVisual imageVisualMap1;
52         private TextVisual textVisualMap1;
53         private NPatchVisual npatchImageVisualMap1;
54         private BorderVisual borderVisualMap1;
55         private int cnt;
56
57         public void Initialize()
58         {
59             Window window = Window.Instance;
60
61             /* Create a visual view. */
62             _visualView = new VisualView();
63             _visualView.ParentOrigin = ParentOrigin.TopLeft;
64             _visualView.PivotPoint = PivotPoint.TopLeft;
65             _visualView.Size2D = new Size2D((int)window.Size.Width, (int)window.Size.Height);
66
67             /* color visual */
68             ColorVisual colorVisualMap1 = new ColorVisual();
69             colorVisualMap1.Color = Color.Green;
70             _visualView.Background = colorVisualMap1.OutputVisualMap;
71
72             window.Add(_visualView);
73
74             /* image visual 1. */
75             imageVisualMap1 = new ImageVisual();
76             imageVisualMap1.URL = resources + "/images/image-1.jpg";
77             imageVisualMap1.Size = new Vector2(200.0f, 200.0f);
78             imageVisualMap1.Position = new Vector2(10.0f, 10.0f);
79             imageVisualMap1.PositionPolicy = VisualTransformPolicyType.Absolute;
80             Console.WriteLine("PositionPolicy:{0}",imageVisualMap1.PositionPolicy);
81             imageVisualMap1.SizePolicy = VisualTransformPolicyType.Absolute;
82             Console.WriteLine("SizePolicy:{0}",imageVisualMap1.SizePolicy);
83             imageVisualMap1.Origin = Visual.AlignType.TopBegin;
84             imageVisualMap1.AnchorPoint = Visual.AlignType.TopBegin;
85             _visualView.AddVisual("imageVisual1", imageVisualMap1);
86             imageVisualMap1.URL = resources + "/images/image-3.jpg";
87
88             /* image visual 2. */
89             ImageVisual imageVisualMap2 = new ImageVisual();
90             imageVisualMap2.URL = resources + "/images/image-2.jpg";
91             imageVisualMap2.Size = new Vector2(250.0f, 200.0f);
92             imageVisualMap2.Position = new Vector2(220.0f, 10.0f);
93             imageVisualMap2.PositionPolicy = VisualTransformPolicyType.Absolute;
94             imageVisualMap2.SizePolicy = VisualTransformPolicyType.Absolute;
95             imageVisualMap2.Origin = Visual.AlignType.TopBegin;
96             imageVisualMap2.AnchorPoint = Visual.AlignType.TopBegin;
97             _visualView.AddVisual("imageVisual2", imageVisualMap2);
98
99             /* text visual. */
100             textVisualMap1 = new TextVisual();
101             textVisualMap1.Text = "Hello Goodbye";
102             textVisualMap1.PointSize = 20.0f;
103
104             textVisualMap1.Size = new Vector2(900.0f, 250.0f);
105             textVisualMap1.Position = new Vector2(10.0f, 220.0f);
106             textVisualMap1.PositionPolicy = VisualTransformPolicyType.Absolute;
107             textVisualMap1.SizePolicy = VisualTransformPolicyType.Absolute;
108             textVisualMap1.Origin = Visual.AlignType.TopBegin;
109             textVisualMap1.AnchorPoint = Visual.AlignType.TopBegin;
110             _visualView.AddVisual("textVisual1", textVisualMap1);
111
112             /* border visual */
113             borderVisualMap1 = new BorderVisual();
114             borderVisualMap1.Color = Color.Red;
115             borderVisualMap1.BorderSize = 5.0f;
116
117             borderVisualMap1.Size = new Vector2(100.0f, 100.0f);
118             borderVisualMap1.Position = new Vector2(10.0f, 380.0f);
119             borderVisualMap1.PositionPolicy = VisualTransformPolicyType.Absolute;
120             borderVisualMap1.SizePolicy = VisualTransformPolicyType.Absolute;
121             borderVisualMap1.Origin = Visual.AlignType.TopBegin;
122             borderVisualMap1.AnchorPoint = Visual.AlignType.TopBegin;
123             _visualView.AddVisual("borderVisual1", borderVisualMap1);
124
125             /* gradient visual */
126             GradientVisual gradientVisualMap1 = new GradientVisual();
127             PropertyArray stopPosition = new PropertyArray();
128             stopPosition.Add(new PropertyValue(0.0f));
129             stopPosition.Add(new PropertyValue(0.3f));
130             stopPosition.Add(new PropertyValue(0.6f));
131             stopPosition.Add(new PropertyValue(0.8f));
132             stopPosition.Add(new PropertyValue(1.0f));
133             gradientVisualMap1.StopOffset = stopPosition;
134             PropertyArray stopColor = new PropertyArray();
135             stopColor.Add(new PropertyValue(new Vector4(129.0f, 198.0f, 193.0f, 255.0f) / 255.0f));
136             stopColor.Add(new PropertyValue(new Vector4(196.0f, 198.0f, 71.0f, 122.0f) / 255.0f));
137             stopColor.Add(new PropertyValue(new Vector4(214.0f, 37.0f, 139.0f, 191.0f) / 255.0f));
138             stopColor.Add(new PropertyValue(new Vector4(129.0f, 198.0f, 193.0f, 150.0f) / 255.0f));
139             stopColor.Add(new PropertyValue(Color.Yellow));
140             gradientVisualMap1.StopColor = stopColor;
141             gradientVisualMap1.StartPosition = new Vector2(0.5f, 0.5f);
142             gradientVisualMap1.EndPosition = new Vector2(-0.5f, -0.5f);
143             gradientVisualMap1.Center = new Vector2(0.5f, 0.5f);
144             gradientVisualMap1.Radius = 1.414f;
145
146             gradientVisualMap1.Size = new Vector2(100.0f, 100.0f);
147             gradientVisualMap1.Position = new Vector2(120.0f, 380.0f);
148             gradientVisualMap1.PositionPolicy = VisualTransformPolicyType.Absolute;
149             gradientVisualMap1.SizePolicy = VisualTransformPolicyType.Absolute;
150             gradientVisualMap1.Origin = Visual.AlignType.TopBegin;
151             gradientVisualMap1.AnchorPoint = Visual.AlignType.TopBegin;
152             _visualView.AddVisual("gradientVisual1", gradientVisualMap1);
153
154             /* primitive visual: Cone */
155             PrimitiveVisual primitiveVisualMap1 = new PrimitiveVisual();
156             primitiveVisualMap1.Shape = PrimitiveVisualShapeType.Cone;
157             primitiveVisualMap1.BevelPercentage = 0.3f;
158             primitiveVisualMap1.BevelSmoothness = 0.0f;
159             primitiveVisualMap1.ScaleDimensions = new Vector3(1.0f, 1.0f, 0.3f);
160             primitiveVisualMap1.MixColor = new Vector4((245.0f / 255.0f), (188.0f / 255.0f), (73.0f / 255.0f), 1.0f);
161
162             primitiveVisualMap1.Size = new Vector2(100.0f, 100.0f);
163             primitiveVisualMap1.Position = new Vector2(230.0f, 380.0f);
164             primitiveVisualMap1.PositionPolicy = VisualTransformPolicyType.Absolute;
165             primitiveVisualMap1.SizePolicy = VisualTransformPolicyType.Absolute;
166             primitiveVisualMap1.Origin = Visual.AlignType.TopBegin;
167             primitiveVisualMap1.AnchorPoint = Visual.AlignType.TopBegin;
168             _visualView.AddVisual("primitiveVisual1", primitiveVisualMap1);
169
170             /* primitive visual: Sphere */
171             PrimitiveVisual primitiveVisualMap2 = new PrimitiveVisual();
172             primitiveVisualMap2.Shape = PrimitiveVisualShapeType.Sphere;
173             primitiveVisualMap2.BevelPercentage = 0.3f;
174             primitiveVisualMap2.BevelSmoothness = 0.0f;
175             primitiveVisualMap2.ScaleDimensions = new Vector3(1.0f, 1.0f, 0.3f);
176             primitiveVisualMap2.MixColor = new Vector4((245.0f / 255.0f), (188.0f / 255.0f), (73.0f / 255.0f), 1.0f);
177
178             primitiveVisualMap2.Size = new Vector2(100.0f, 100.0f);
179             primitiveVisualMap2.Position = new Vector2(340.0f, 380.0f);
180             primitiveVisualMap2.PositionPolicy = VisualTransformPolicyType.Absolute;
181             primitiveVisualMap2.SizePolicy = VisualTransformPolicyType.Absolute;
182             primitiveVisualMap2.Origin = Visual.AlignType.TopBegin;
183             primitiveVisualMap2.AnchorPoint = Visual.AlignType.TopBegin;
184             _visualView.AddVisual("primitiveVisual2", primitiveVisualMap2);
185
186             /* primitive visual: Cylinder */
187             PrimitiveVisual primitiveVisualMap3 = new PrimitiveVisual();
188             primitiveVisualMap3.Shape = PrimitiveVisualShapeType.Cylinder;
189             primitiveVisualMap3.BevelPercentage = 0.3f;
190             primitiveVisualMap3.BevelSmoothness = 0.0f;
191             primitiveVisualMap3.ScaleDimensions = new Vector3(1.0f, 1.0f, 0.3f);
192             primitiveVisualMap3.MixColor = new Vector4((245.0f / 255.0f), (188.0f / 255.0f), (73.0f / 255.0f), 1.0f);
193
194             primitiveVisualMap3.Size = new Vector2(100.0f, 100.0f);
195             primitiveVisualMap3.Position = new Vector2(10.0f, 490.0f);
196             primitiveVisualMap3.PositionPolicy = VisualTransformPolicyType.Absolute;
197             primitiveVisualMap3.SizePolicy = VisualTransformPolicyType.Absolute;
198             primitiveVisualMap3.Origin = Visual.AlignType.TopBegin;
199             primitiveVisualMap3.AnchorPoint = Visual.AlignType.TopBegin;
200             _visualView.AddVisual("primitiveVisual3", primitiveVisualMap3);
201
202             /* primitive visual: ConicalFrustrum */
203             PrimitiveVisual primitiveVisualMap4 = new PrimitiveVisual();
204             primitiveVisualMap4.Shape = PrimitiveVisualShapeType.ConicalFrustrum;
205             primitiveVisualMap4.BevelPercentage = 0.3f;
206             primitiveVisualMap4.BevelSmoothness = 0.0f;
207             primitiveVisualMap4.ScaleDimensions = new Vector3(1.0f, 1.0f, 0.3f);
208             primitiveVisualMap4.MixColor = new Vector4((245.0f / 255.0f), (188.0f / 255.0f), (73.0f / 255.0f), 1.0f);
209
210             primitiveVisualMap4.Size = new Vector2(100.0f, 100.0f);
211             primitiveVisualMap4.Position = new Vector2(120.0f, 490.0f);
212             primitiveVisualMap4.PositionPolicy = VisualTransformPolicyType.Absolute;
213             primitiveVisualMap4.SizePolicy = VisualTransformPolicyType.Absolute;
214             primitiveVisualMap4.Origin = Visual.AlignType.TopBegin;
215             primitiveVisualMap4.AnchorPoint = Visual.AlignType.TopBegin;
216             _visualView.AddVisual("primitiveVisual4", primitiveVisualMap4);
217
218             /* primitive visual: Cube */
219             PrimitiveVisual primitiveVisualMap5 = new PrimitiveVisual();
220             primitiveVisualMap5.Shape = PrimitiveVisualShapeType.Cube;
221             primitiveVisualMap5.BevelPercentage = 0.3f;
222             primitiveVisualMap5.BevelSmoothness = 0.0f;
223             primitiveVisualMap5.ScaleDimensions = new Vector3(1.0f, 1.0f, 0.3f);
224             primitiveVisualMap5.MixColor = new Vector4((245.0f / 255.0f), (188.0f / 255.0f), (73.0f / 255.0f), 1.0f);
225
226             primitiveVisualMap5.Size = new Vector2(100.0f, 100.0f);
227             primitiveVisualMap5.Position = new Vector2(230.0f, 490.0f);
228             primitiveVisualMap5.PositionPolicy = VisualTransformPolicyType.Absolute;
229             primitiveVisualMap5.SizePolicy = VisualTransformPolicyType.Absolute;
230             primitiveVisualMap5.Origin = Visual.AlignType.TopBegin;
231             primitiveVisualMap5.AnchorPoint = Visual.AlignType.TopBegin;
232             _visualView.AddVisual("primitiveVisual5", primitiveVisualMap5);
233
234             /* mesh visual nothing show. */
235             MeshVisual meshVisualMap1 = new MeshVisual();
236             meshVisualMap1.ObjectURL = resources + "/models/Dino.obj";
237             meshVisualMap1.MaterialtURL = resources + "/models/Dino.mtl";
238             meshVisualMap1.TexturesPath = resources + "/images/";
239             meshVisualMap1.ShadingMode = MeshVisualShadingModeValue.TexturedWithSpecularLighting;
240
241             meshVisualMap1.Size = new Size2D(400, 400);
242             meshVisualMap1.Position = new Position2D(-50, 600);
243             meshVisualMap1.PositionPolicy = VisualTransformPolicyType.Absolute;
244             meshVisualMap1.SizePolicy = VisualTransformPolicyType.Absolute;
245             meshVisualMap1.Origin = Visual.AlignType.TopBegin;
246             meshVisualMap1.AnchorPoint = Visual.AlignType.TopBegin;
247             _visualView.AddVisual("meshVisual1", meshVisualMap1);
248
249             /* n-patch image visual 1. */
250             npatchImageVisualMap1 = new NPatchVisual();
251             npatchImageVisualMap1.URL = resources + "/images/gallery-4.jpg";
252             npatchImageVisualMap1.Size = new Size2D(400, 400);
253             npatchImageVisualMap1.Position = new Position2D(300, 600);
254             npatchImageVisualMap1.PositionPolicyX = VisualTransformPolicyType.Absolute;
255             npatchImageVisualMap1.PositionPolicyY = VisualTransformPolicyType.Absolute;
256             npatchImageVisualMap1.SizePolicyWidth = VisualTransformPolicyType.Absolute;
257             npatchImageVisualMap1.SizePolicyHeight = VisualTransformPolicyType.Absolute;
258             npatchImageVisualMap1.Origin = Visual.AlignType.TopBegin;
259             npatchImageVisualMap1.AnchorPoint = Visual.AlignType.TopBegin;
260             npatchImageVisualMap1.Border = new Rectangle(100, 100, 100, 100);
261             _visualView.AddVisual("npatchImageVisual1", npatchImageVisualMap1);
262
263             _window = Window.Instance;
264             _window.FocusChanged += (sender, ee) =>
265             {
266                 cnt++;
267                 Tizen.Log.Debug("NUI", "[WindowFocusTest] WindowFocusChanged event comes! focus gained=" + ee.FocusGained);
268                 imageVisualMap1.Size += new Size2D(50, 50);
269                 imageVisualMap1.Position += new Vector2(20.0f, 20.0f);
270
271                 textVisualMap1.Text = "Hello Goodbye" + cnt;
272                 textVisualMap1.PointSize = 10.0f + (float)(cnt);
273
274                 npatchImageVisualMap1.URL = resources + "/images/gallery-" + (cnt % 5) + ".jpg";
275
276                 borderVisualMap1.BorderSize = 1.0f + (float)cnt;
277             };
278
279             Tizen.Log.Debug("NUI", "[WindowFocusTest] is focus acceptable=" + _window.IsFocusAcceptable());
280             _window.SetAcceptFocus(false);
281             Tizen.Log.Debug("NUI", "[WindowFocusTest] set focus acceptable=false!!!");
282             Tizen.Log.Debug("NUI", "[WindowFocusTest] is focus acceptable=" + _window.IsFocusAcceptable());
283             _window.SetAcceptFocus(true);
284             Tizen.Log.Debug("NUI", "[WindowFocusTest] set focus acceptable=true!!!");
285             Tizen.Log.Debug("NUI", "[WindowFocusTest] is focus acceptable=" + _window.IsFocusAcceptable());
286
287
288         }
289
290         [STAThread]
291         static void _Main(string[] args)
292         {
293             Example example = new Example();
294             example.Run(args);
295         }
296     }
297 }