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