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.UIComponents;
22 using Tizen.NUI.BaseComponents;
23 using Tizen.NUI.Constants;
29 private string _myOwnName;
30 public int _myCurrentValue;
37 public string MyOwnName
50 class MyButton : PushButton
52 private string _myOwnName;
53 public int _myCurrentValue;
60 public string MyOwnName
75 private string _myOwnName;
76 public int _myCurrentValue;
83 public string MyOwnName
96 class Example : NUIApplication
98 //private const string _resPath = "/home/owner/apps_rw/NUISamples.TizenTV/res";
99 private const string _resPath = "./res"; //for ubuntu
101 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
102 delegate void CallbackDelegate(IntPtr appPtr); // void, void delgate
104 public Example() : base()
108 public Example(string stylesheet) : base(stylesheet)
112 public Example(string stylesheet, WindowMode windowMode) : base(stylesheet, windowMode)
116 protected override void OnCreate()
122 public void Initialize()
126 NavigationPropertiesTests();
130 CustomViewPropertyTest();
132 VisibilityChangeTest();
138 WindowDevelPropertyTest();
140 Animatable handle = new Animatable();
141 int myPropertyIndex = handle.RegisterProperty("myProperty", new PropertyValue(10.0f), PropertyAccessMode.ReadWrite);
142 float myProperty = 0.0f;
143 handle.GetProperty(myPropertyIndex).Get(out myProperty);
144 Tizen.Log.Debug("NUI", "myProperty value: " + myProperty );
146 int myPropertyIndex2 = handle.RegisterProperty("myProperty2", new PropertyValue(new Size(5.0f, 5.0f, 0.0f)), PropertyAccessMode.ReadWrite);
147 Size2D myProperty2 = new Size2D(0, 0);
148 handle.GetProperty(myPropertyIndex2).Get(myProperty2);
149 Tizen.Log.Debug("NUI", "myProperty2 value: " + myProperty2.Width + ", " + myProperty2.Height );
151 View view = new View();
152 view.Size2D = new Size2D(200, 200);
153 view.Name = "MyView";
154 //view.MixColor = new Color(1.0f, 0.0f, 1.0f, 0.8f);
155 Tizen.Log.Debug("NUI", "View size: " + view.Size2D.Width + ", " + view.Size2D.Height);
156 Tizen.Log.Debug("NUI", "View name: " + view.Name);
158 Window window = Window.Instance;
159 window.BackgroundColor = Color.White;
160 Size windowSize = new Size(window.Size.Width, window.Size.Height, 0.0f);
161 Tizen.Log.Debug("NUI", "Window size: " + windowSize.Width + ", " + windowSize.Height);
164 TextLabel text = new TextLabel("Hello Mono World");
165 text.ParentOrigin = ParentOrigin.Center;
166 text.PivotPoint = PivotPoint.Center;
167 text.HorizontalAlignment = HorizontalAlignment.Center;
170 Tizen.Log.Debug("NUI", "Text label text: " + text.Text );
172 Tizen.Log.Debug("NUI", "Text label point size: " + text.PointSize );
173 text.PointSize = 32.0f;
174 Tizen.Log.Debug("NUI", "Text label new point size: " + text.PointSize );
176 RectanglePaddingClassTest();
178 Tizen.Log.Debug("NUI", " *************************" );
179 Size Size = new Size(100, 50, 0);
180 Tizen.Log.Debug("NUI", " Created " + Size );
181 Tizen.Log.Debug("NUI", " Size x = " + Size.Width + ", y = " + Size.Height );
182 Size += new Size(20, 20, 0);
183 Tizen.Log.Debug("NUI", " Size x = " + Size.Width + ", y = " + Size.Height );
186 Tizen.Log.Debug("NUI", " Size width = " + Size.Width + ", height = " + Size.Height );
188 Tizen.Log.Debug("NUI", " *************************" );
189 Position Position = new Position(20, 100, 50);
190 Tizen.Log.Debug("NUI", " Created " + Position );
191 Tizen.Log.Debug("NUI", " Position x = " + Position.X + ", y = " + Position.Y + ", z = " + Position.Z );
192 Position += new Position(20, 20, 20);
193 Tizen.Log.Debug("NUI", " Position x = " + Position.X + ", y = " + Position.Y + ", z = " + Position.Z );
197 Tizen.Log.Debug("NUI", " Position width = " + Position.X + ", height = " + Position.Y + ", depth = " + Position.Z );
199 Tizen.Log.Debug("NUI", " *************************" );
200 Color color = new Color(20, 100, 50, 200);
201 Tizen.Log.Debug("NUI", " Created " + color );
202 Tizen.Log.Debug("NUI", " Color R = " + color.R + ", G = " + color.G + ", B = " + color.B + ", A = " + color.A );
203 color += new Color(20, 20, 20, 20);
204 Tizen.Log.Debug("NUI", " Color R = " + color.R + ", G = " + color.G + ", B = " + color.B + ", A = " + color.A );
209 Tizen.Log.Debug("NUI", " Color r = " + color.R + ", g = " + color.G + ", b = " + color.B + ", a = " + color.A );
214 public void RectanglePaddingClassTest()
216 using (Rectangle r1 = new Rectangle(2, 5, 20, 30))
218 Tizen.Log.Debug("NUI", " Created " + r1 );
219 Tizen.Log.Debug("NUI", " IsEmpty() = " + r1.IsEmpty() );
220 Tizen.Log.Debug("NUI", " Left = " + r1.Left() );
221 Tizen.Log.Debug("NUI", " Right = " + r1.Right() );
222 Tizen.Log.Debug("NUI", " Top = " + r1.Top() );
223 Tizen.Log.Debug("NUI", " Bottom = " + r1.Bottom() );
224 Tizen.Log.Debug("NUI", " Area = " + r1.Area() );
227 Tizen.Log.Debug("NUI", " *************************" );
229 using (Rectangle r2 = new Rectangle(2, 5, 20, 30))
231 Tizen.Log.Debug("NUI", " Created " + r2 );
233 Tizen.Log.Debug("NUI", " IsEmpty() = " + r2.IsEmpty() );
234 Tizen.Log.Debug("NUI", " Left = " + r2.Left() );
235 Tizen.Log.Debug("NUI", " Right = " + r2.Right() );
236 Tizen.Log.Debug("NUI", " Top = " + r2.Top() );
237 Tizen.Log.Debug("NUI", " Bottom = " + r2.Bottom() );
238 Tizen.Log.Debug("NUI", " Area = " + r2.Area() );
241 Tizen.Log.Debug("NUI", " *************************" );
243 Rectangle r3 = new Rectangle(10, 10, 20, 20);
244 Rectangle r4 = new Rectangle(10, 10, 20, 20);
248 Tizen.Log.Debug("NUI", "r3 == r4");
252 Tizen.Log.Debug("NUI", "r3 != r4");
255 r4 = new Rectangle(12, 10, 20, 20);
259 Tizen.Log.Debug("NUI", "r3 == r4");
263 Tizen.Log.Debug("NUI", "r3 != r4");
266 PaddingType p1 = new PaddingType(10.5f, 10.7f, 20.8f, 20.8f);
267 PaddingType p2 = new PaddingType(10.5f, 10.7f, 20.8f, 20.8f);
271 Tizen.Log.Debug("NUI", "p1 == p2");
275 Tizen.Log.Debug("NUI", "p1 != p2");
278 p2 = new PaddingType(12.0f, 10.7f, 20.2f, 20.0f);
282 Tizen.Log.Debug("NUI", "p1 == p2");
286 Tizen.Log.Debug("NUI", "p1 != p2");
290 public void NavigationPropertiesTests()
292 View view = new View();
293 View leftView, rightView, upView, downView, tmpView;
295 leftView = new View();
296 leftView.Name = "leftView";
297 rightView = new View();
298 rightView.Name = "rightView";
300 upView.Name = "upView";
301 downView = new View();
302 downView.Name = "downView";
304 Window.Instance.Add(leftView);
305 Window.Instance.Add(rightView);
306 Window.Instance.Add(upView);
307 Window.Instance.Add(downView);
309 view.LeftFocusableView = leftView;
310 tmpView = view.LeftFocusableView;
311 if (string.Compare(tmpView.Name, "leftView") == 0)
313 Tizen.Log.Debug("NUI", "Passed: LeftFocusedView = " + tmpView.Name);
317 Tizen.Log.Debug("NUI", "Failed: LeftFocusedView = " + tmpView.Name);
320 view.RightFocusableView = rightView;
321 tmpView = view.RightFocusableView;
322 if (string.Compare(tmpView.Name, "rightView") == 0)
324 Tizen.Log.Debug("NUI", "Passed: RightFocusedView = " + tmpView.Name);
328 Tizen.Log.Debug("NUI", "Failed: RightFocusedView = " + tmpView.Name);
331 Window.Instance.Add(view);
333 view.UpFocusableView = upView;
334 tmpView = view.UpFocusableView;
335 if (string.Compare(tmpView.Name, "upView") == 0)
337 Tizen.Log.Debug("NUI", "Passed: UpFocusedView = " + tmpView.Name);
341 Tizen.Log.Debug("NUI", "Failed: UpFocusedView = " + tmpView.Name);
344 view.DownFocusableView = downView;
345 tmpView = view.DownFocusableView;
346 if (string.Compare(tmpView.Name, "downView") == 0)
348 Tizen.Log.Debug("NUI", "Passed: DownFocusedView = " + tmpView.Name);
352 Tizen.Log.Debug("NUI", "Failed: DownFocusedView = " + tmpView.Name);
355 Window.Instance.Remove(leftView);
356 tmpView = view.LeftFocusableView;
359 Tizen.Log.Debug("NUI", "Passed: NULL LeftFocusedView");
363 Tizen.Log.Debug("NUI", "Failed: LeftFocusedView = " + tmpView.Name);
367 public void OperatorTests()
369 View view = new View();
370 View differentView = new View();
371 View viewSame = view;
372 View nullView = null;
374 // test the true operator
377 Tizen.Log.Debug("NUI", "BaseHandle Operator true (view) : test passed ");
381 Tizen.Log.Debug("NUI", "BaseHandle Operator true (view): test failed ");
384 View parent = view.Parent;
388 Tizen.Log.Debug("NUI", "Handle with Empty body :failed ");
392 Tizen.Log.Debug("NUI", "Valid with Empty body :passed ");
395 view.Add( differentView );
397 // here we test two different C# objects, which on the native side have the same body/ ref-object
398 if ( view == differentView.Parent )
400 Tizen.Log.Debug("NUI", "view == differentView.GetParent() :passed ");
404 Tizen.Log.Debug("NUI", "view == differentView.GetParent() :failed ");
407 if ( differentView == differentView.Parent )
409 Tizen.Log.Debug("NUI", "differentView == differentView.GetParent() :failed ");
413 Tizen.Log.Debug("NUI", "differentView == differentView.GetParent() :passed ");
418 Tizen.Log.Debug("NUI", "BaseHandle Operator true (nullView) : test failed ");
422 Tizen.Log.Debug("NUI", "BaseHandle Operator true (nullView): test passed ");
428 Tizen.Log.Debug("NUI", "BaseHandle Operator !(view) : test failed ");
432 Tizen.Log.Debug("NUI", "BaseHandle Operator !(view): test passed ");
437 Tizen.Log.Debug("NUI", "BaseHandle Operator !(nullView) : test passed ");
441 Tizen.Log.Debug("NUI", "BaseHandle Operator !(nullView): test failed ");
444 // Note: operator false only used inside & operator
445 // test equality operator ==
446 if ( view == viewSame )
448 Tizen.Log.Debug("NUI", "BaseHandle Operator (view == viewSame) : test passed");
452 Tizen.Log.Debug("NUI", "BaseHandle Operator (view == viewSame) : test failed");
455 if ( view == differentView )
457 Tizen.Log.Debug("NUI", "BaseHandle Operator (view == differentView) : test failed");
461 Tizen.Log.Debug("NUI", "BaseHandle Operator (view == differentView) : test passed");
464 if ( view == nullView )
466 Tizen.Log.Debug("NUI", "BaseHandle Operator (view == nullView) : test failed");
470 Tizen.Log.Debug("NUI", "BaseHandle Operator (view == nullView) : test passed");
473 if ( nullView == nullView )
475 Tizen.Log.Debug("NUI", "BaseHandle Operator (nullView == nullView) : test passed");
479 Tizen.Log.Debug("NUI", "BaseHandle Operator (nullView == nullView) : test failed");
483 if ( view || viewSame )
485 Tizen.Log.Debug("NUI", "BaseHandle Operator (view || viewSame) : test passed");
489 Tizen.Log.Debug("NUI", "BaseHandle Operator (view || viewSame) : test failed");
492 if ( view || nullView )
494 Tizen.Log.Debug("NUI", "BaseHandle Operator (view || nullView) : test passed");
498 Tizen.Log.Debug("NUI", "BaseHandle Operator (view || nullView) : test failed");
501 if ( nullView || nullView )
503 Tizen.Log.Debug("NUI", "BaseHandle Operator (nullView || nullView) : test failed");
507 Tizen.Log.Debug("NUI", "BaseHandle Operator (nullView || nullView) : test passed");
511 if ( view && viewSame )
513 Tizen.Log.Debug("NUI", "BaseHandle Operator (view && viewSame) : test passed");
517 Tizen.Log.Debug("NUI", "BaseHandle Operator (view && viewSame) : test failed");
520 if ( view && nullView )
522 Tizen.Log.Debug("NUI", "BaseHandle Operator (view && nullView) : test failed");
526 Tizen.Log.Debug("NUI", "BaseHandle Operator (view && nullView) : test passed");
529 if ( nullView && nullView )
531 Tizen.Log.Debug("NUI", "BaseHandle Operator (nullView && nullView) : test failed");
535 Tizen.Log.Debug("NUI", "BaseHandle Operator (nullView && nullView) : test passed");
540 private TextLabel label;
541 public void VisibilityChangeTest()
543 label = new TextLabel();
544 label.Text = "Visibility";
545 label.TextColor = Color.Red;
546 label.PointSize = 30.0f;
547 label.ParentOrigin = ParentOrigin.TopLeft;
548 label.PivotPoint = PivotPoint.TopLeft;
549 label.Position = new Position(0.0f, 50.0f, 0.0f);
550 Window.Instance.Add(label);
551 label.VisibilityChanged += (sender, e) =>
554 Tizen.Log.Debug("NUI", "VisibilityChanged, label show.");
556 Tizen.Log.Debug("NUI", "VisibilityChanged, label hide.");
559 PushButton button = new PushButton();
560 button.LabelText = "Change Visibility";
561 button.ParentOrigin = ParentOrigin.TopLeft;
562 button.PivotPoint = PivotPoint.TopLeft;
563 Window.Instance.Add(button);
564 button.Clicked += (sender, e) =>
579 public void ResourceReadyTest()
581 ImageView image = new ImageView();
582 image.ResourceUrl = _resPath + "/images/dog-anim.gif";
583 image.Size2D = new Size2D(150, 150);
584 image.ParentOrigin = ParentOrigin.TopLeft;
585 image.PivotPoint = PivotPoint.TopLeft;
586 image.Position = new Position(0.0f, 150.0f, 0.0f);
587 image.ResourceReady += (sender, e) =>
589 Tizen.Log.Debug("NUI", "Resource is ready!");
591 Window.Instance.Add(image);
594 public void ViewFocusTest()
596 View view1 = new View();
597 view1.BackgroundColor = Color.Red;
598 view1.Size2D = new Size2D(80, 50);
599 view1.ParentOrigin = ParentOrigin.CenterLeft;
600 view1.PivotPoint = PivotPoint.CenterLeft;
601 view1.Position = new Position(10.0f, 50.0f, 0.0f);
602 view1.Focusable = true;
603 View view2 = new View();
604 view2.BackgroundColor = Color.Cyan;
605 view2.Size2D = new Size2D(80, 50);
606 view2.ParentOrigin = ParentOrigin.CenterLeft;
607 view2.PivotPoint = PivotPoint.CenterLeft;
608 view2.Position = new Position(100.0f, 50.0f, 0.0f);
609 view2.Focusable = true;
610 view1.RightFocusableView = view2;
611 view2.LeftFocusableView = view1;
612 Window.Instance.Add(view1);
613 Window.Instance.Add(view2);
614 FocusManager.Instance.SetCurrentFocusView(view1);
616 PushButton button = new PushButton();
617 button.LabelText = "Focus Back";
618 button.Size2D = new Size2D(150, 50);
619 button.ParentOrigin = ParentOrigin.CenterLeft;
620 button.PivotPoint = PivotPoint.CenterLeft;
621 button.Position = new Position(190.0f, 50.0f, 0.0f);
623 button.Focusable = true;
624 view2.RightFocusableView = button;
626 button.Pressed += (obj, e) =>
628 FocusManager.Instance.MoveFocusBackward();
631 Window.Instance.Add(button);
634 public void WindowDevelPropertyTest()
636 Window window = Window.Instance;
637 uint count = window.GetSupportedAuxiliaryHintCount();
640 window.BackgroundColor = Color.Blue;
642 uint id = window.AddAuxiliaryHint("wm.policy.win.effect.disable", "1");
643 window.RemoveAuxiliaryHint(id);
644 window.RemoveAuxiliaryHint(2);
646 id = window.AddAuxiliaryHint("wm.policy.win.effect.disable", "1");
647 window.SetAuxiliaryHintValue(id, "0");
648 string value = window.GetAuxiliaryHintValue(id);
651 window.BackgroundColor = Color.Red;
654 window.SetInputRegion(new Rectangle(0, 0, 0, 0));
655 WindowType type = window.Type;
656 Tizen.Log.Debug("NUI", "window type is "+type);
657 window.Type = WindowType.Notification;
659 NotificationLevel level = window.GetNotificationLevel();
660 window.SetNotificationLevel(NotificationLevel.High);
661 level = window.GetNotificationLevel();
662 Tizen.Log.Debug("NUI", "window notification level is " + level);
664 window.SetOpaqueState(true);
665 Tizen.Log.Debug("NUI", "window is opaque? " + window.IsOpaqueState());
667 window.SetScreenMode(ScreenMode.AlwaysOn);
668 ScreenMode screenMode = window.GetScreenMode();
669 Tizen.Log.Debug("NUI", "window screen mode is " + screenMode);
671 bool ret = window.SetBrightness(50);
672 int brightness = window.GetBrightness();
673 Tizen.Log.Debug("NUI", "window brightness is " + brightness, ", return "+ret);
676 public void CustomViewPropertyTest()
678 // Create a Spin control
679 Spin spin = new Spin();
681 // Background property
682 PropertyMap background = new PropertyMap();
683 background.Add( Visual.Property.Type, new PropertyValue((int)Visual.Type.Color) )
684 .Add( ColorVisualProperty.MixColor, new PropertyValue(Color.Red) );
685 spin.Background = background;
687 background = spin.Background;
688 Color backgroundColor = new Color();
689 background.Find(ColorVisualProperty.MixColor, "mixColor")?.Get(backgroundColor);
690 if( backgroundColor == Color.Red )
692 Tizen.Log.Debug("NUI", "Custom View Background property : test passed");
696 Tizen.Log.Debug("NUI", "Custom View Background property : test failed");
699 // BackgroundColor property
700 spin.BackgroundColor = Color.Yellow;
701 if(spin.BackgroundColor == Color.Yellow)
703 Tizen.Log.Debug("NUI", "Custom View BackgroundColor property : test passed");
707 Tizen.Log.Debug("NUI", "Custom View BackgroundColor property : test failed");
710 // BackgroundImage property
711 spin.BackgroundImage = "background-image.jpg";
712 if(spin.BackgroundImage == "background-image.jpg")
714 Tizen.Log.Debug("NUI", "Custom View BackgroundImage property : test passed");
718 Tizen.Log.Debug("NUI", "Custom View BackgroundImage property : test failed");
721 // StyleName property
722 spin.StyleName = "MyCustomStyle";
723 if(spin.StyleName == "MyCustomStyle")
725 Tizen.Log.Debug("NUI", "Custom View StyleName property : test passed");
729 Tizen.Log.Debug("NUI", "Custom View StyleName property : test failed");
733 public void ViewDownCastTest()
735 View container = new View();
736 container.Position = new Position(-800.0f, -800.0f, 0.0f);
737 Window.Instance.Add(container);
738 Tizen.Log.Debug("NUI", "winow layer count is "+Window.Instance.LayerCount);
739 Tizen.Log.Debug("NUI", "winow default layer child at 0 is "+Window.Instance.GetDefaultLayer().GetChildAt(0));
740 // Test downcast for native control
741 TextLabel myLabel = new TextLabel();
742 myLabel.Name = "MyLabelName";
743 myLabel.Text = "MyText";
745 Tizen.Log.Debug("NUI", "myLabel.Name = " + myLabel.Name + ", Text = " + myLabel.Text);
747 container.Add(myLabel);
749 View myLabelView = container.FindChildByName("MyLabelName");
752 TextLabel newLabel = myLabelView as TextLabel;
755 Tizen.Log.Debug("NUI", "Downcast to TextLabel successful: newLabel Name = " + newLabel.Name + ", Text = " + newLabel.Text);
759 Tizen.Log.Debug("NUI", "Downcast to TextLabel failed!");
763 // Test downcast for class directly inherited from View
764 MyView myView = new MyView();
765 myView.Name = "MyViewName";
766 myView.MyOwnName = "MyOwnViewName";
767 myView._myCurrentValue = 5;
769 Tizen.Log.Debug("NUI", "myView.Name = " + myView.Name + ", MyOwnName = " + myView.MyOwnName + ", myCurrentValue = " + myView._myCurrentValue);
771 container.Add(myView);
773 View myViewView = container.FindChildByName("MyViewName");
776 MyView newView = myViewView as MyView;
779 Tizen.Log.Debug("NUI", "Downcast to MyView successful: newView Name = " + newView.Name + ", MyOwnName = " + newView.MyOwnName + ", myCurrentValue = " + newView._myCurrentValue);
783 Tizen.Log.Debug("NUI", "Downcast to MyView failed!");
787 // Test downcast for class directly inherited from native control
788 MyButton myButton = new MyButton();
789 myButton.Name = "MyButtonName";
790 myButton.MyOwnName = "MyOwnViewName";
791 myButton.LabelText = "MyLabelText";
792 myButton._myCurrentValue = 5;
794 Tizen.Log.Debug("NUI", "myButton.Name = " + myButton.Name + ", MyOwnName = " + myButton.MyOwnName + ", LabelText = " + myButton.LabelText + ", myCurrentValue = " + myButton._myCurrentValue);
796 container.Add(myButton);
798 View myButtonView = container.FindChildByName("MyButtonName");
801 MyButton newButton = myButtonView as MyButton;
804 Tizen.Log.Debug("NUI", "Downcast to MyButton successful: newButton Name = " + newButton.Name + ", MyOwnName = " + newButton.MyOwnName + ", LabelText = " + myButton.LabelText + ", myCurrentValue = " + newButton._myCurrentValue);
808 Tizen.Log.Debug("NUI", "Downcast to MyButton failed!");
812 // Test downcast for a CustomView
813 Spin spin = new Spin();
814 spin.Name = "SpinName";
815 spin.MaxValue = 8888;
817 Tizen.Log.Debug("NUI", "spin.Name = " + spin.Name + ", MaxValue = " + spin.MaxValue);
821 View spinView = container.FindChildByName("SpinName");
824 Spin newSpin = spinView as Spin;
827 Tizen.Log.Debug("NUI", "Downcast to Spin successful: newSpin Name = " + newSpin.Name + ", MaxValue = " + newSpin.MaxValue);
831 Tizen.Log.Debug("NUI", "Downcast to Spin failed!");
835 // Test downcast for class inherited from a CustomView
836 MySpin mySpin = new MySpin();
837 mySpin.Name = "MySpinName";
838 mySpin.MyOwnName = "MyOwnSpinName";
839 mySpin.MaxValue = 8888;
840 mySpin._myCurrentValue = 5;
842 Tizen.Log.Debug("NUI", "mySpin.Name = " + mySpin.Name + ", MyOwnName = " + mySpin.MyOwnName + ", MaxValue = " + mySpin.MaxValue + ", currentValue = " + mySpin._myCurrentValue);
844 container.Add(mySpin);
846 View mySpinView = container.FindChildByName("MySpinName");
849 MySpin newSpin = mySpinView as MySpin;
852 Tizen.Log.Debug("NUI", "Downcast to MySpin successful: newSpin Name = " + newSpin.Name + ", MyOwnName = " + newSpin.MyOwnName + ", MaxValue = " + newSpin.MaxValue + ", currentValue = " + newSpin._myCurrentValue);
856 Tizen.Log.Debug("NUI", "Downcast to MySpin failed!");
863 public void DowncastTest()
865 //Create a View as a child of parent View, get it use parent.GetChildAt(i), then DownCast to View handle, but call BackgroundColor property will crash.
866 View parent = new View();
867 View[] childs = new View[5];
869 for (int i = 0; i < 5; i++)
871 childs[i] = new View();
872 childs[i].Name = "child_view_" + i;
873 childs[i].BackgroundColor = Color.Red;
874 parent.Add(childs[i]);
877 for (uint i = 0; i < parent.ChildCount; i++)
879 View childView = parent.GetChildAt(i);
882 Tizen.Log.Debug("NUI", "Type[" + childView.GetTypeName() + "] BGColor[" + childView.BackgroundColor.R + "]" + " Name[" + childView.Name + "]");
886 PushButton button = new PushButton();
887 button.LabelText = "ButtonTest!";
888 button.BackgroundColor = Color.White;
889 View parentView = new View();
890 parentView.Add(button);
891 PushButton view = parentView.GetChildAt(0) as PushButton;
894 Tizen.Log.Debug("NUI", "NUI view GetTypeName= " + view.GetTypeName());
895 Tizen.Log.Debug("NUI", "NUI view LabelText= " + view.LabelText);
896 Tizen.Log.Debug("NUI", "NUI view color= " + view.BackgroundColor.R);
903 /// The main entry point for the application.
906 static void _Main(string[] args)
908 Tizen.Log.Debug("NUI", "Hello Mono World");
910 Example example = new Example();