2 * Copyright (c) 2017 Samsung Electronics Co., Ltd.
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
19 using System.Runtime.InteropServices;
21 using Tizen.NUI.BaseComponents;
22 using Tizen.NUI.Constants;
24 namespace VisualViewTest
26 // An example of Visual View control.
27 class Example : NUIApplication
29 private VisualView _visualView = null;
30 private const string resources = "/home/owner/apps_rw/NUISamples.TizenTV/res";
31 private Window _window;
33 public Example() : base()
37 public Example(string stylesheet) : base(stylesheet)
41 public Example(string stylesheet, WindowMode windowMode) : base(stylesheet, windowMode)
45 protected override void OnCreate()
51 private ImageVisual imageVisualMap1;
52 private TextVisual textVisualMap1;
53 private NPatchVisual npatchImageVisualMap1;
54 private BorderVisual borderVisualMap1;
57 public void Initialize()
59 Window window = Window.Instance;
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);
68 ColorVisual colorVisualMap1 = new ColorVisual();
69 colorVisualMap1.Color = Color.Green;
70 _visualView.Background = colorVisualMap1.OutputVisualMap;
72 window.Add(_visualView);
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";
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);
100 textVisualMap1 = new TextVisual();
101 textVisualMap1.Text = "Hello Goodbye";
102 textVisualMap1.PointSize = 20.0f;
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);
113 borderVisualMap1 = new BorderVisual();
114 borderVisualMap1.Color = Color.Red;
115 borderVisualMap1.BorderSize = 5.0f;
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);
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;
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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;
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);
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);
263 _window = Window.Instance;
264 _window.FocusChanged += (sender, ee) =>
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);
271 textVisualMap1.Text = "Hello Goodbye" + cnt;
272 textVisualMap1.PointSize = 10.0f + (float)(cnt);
274 npatchImageVisualMap1.URL = resources + "/images/gallery-" + (cnt % 5) + ".jpg";
276 borderVisualMap1.BorderSize = 1.0f + (float)cnt;
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());
291 static void _Main(string[] args)
293 Example example = new Example();