using global::System; using Tizen.NUI; using Tizen.NUI.BaseComponents; using NUnit.Framework; namespace Tizen.NUI.Samples { using log = Tizen.Log; public class SubWindowTest : IExample { string tag = "NUITEST"; Window mainWin; Window subWin1; Window subWin2; Timer tm; void Initialize() { mainWin = NUIApplication.GetDefaultWindow(); mainWin.KeyEvent += OnKeyEvent; mainWin.BackgroundColor = Color.Cyan; mainWin.WindowSize = new Size2D(500, 500); TextLabel text = new TextLabel("Hello Tizen NUI World"); text.HorizontalAlignment = HorizontalAlignment.Center; text.VerticalAlignment = VerticalAlignment.Center; text.TextColor = Color.Blue; text.PointSize = 12.0f; text.HeightResizePolicy = ResizePolicyType.FillToParent; text.WidthResizePolicy = ResizePolicyType.FillToParent; mainWin.Add(text); Animation animation = new Animation(2000); animation.AnimateTo(text, "Orientation", new Rotation(new Radian(new Degree(180.0f)), PositionAxis.X), 0, 500); animation.AnimateTo(text, "Orientation", new Rotation(new Radian(new Degree(0.0f)), PositionAxis.X), 500, 1000); animation.Looping = true; animation.Play(); log.Fatal(tag, "animation play!"); } public void OnKeyEvent(object sender, Window.KeyEventArgs e) { if (e.Key.State == Key.StateType.Down) { log.Fatal(tag, $"key down! key={e.Key.KeyPressedName}"); switch (e.Key.KeyPressedName) { case "XF86Back": case "Escape": //Exit(); break; case "1": TestCase1(); break; case "2": TestCase2(); break; case "3": TestCase3(); break; case "4": TestCase4(); break; case "5": TestCase5(); break; default: log.Fatal(tag, $"no test!"); break; } } } //TDD void TestCase1() { log.Fatal(tag, "test 1 : 1) make sub window-1 2) add some dummy object"); subWin1 = new Window("subwin1", new Rectangle(500, 500, 300, 300), false); subWin1.BackgroundColor = Color.Blue; View dummy = new View() { Size = new Size(100, 100), Position = new Position(50, 50), BackgroundColor = Color.Yellow, }; subWin1.Add(dummy); subWin1.KeyEvent += SubWin1_KeyEvent; } void TestCase2() { log.Fatal(tag, "test 2 : 1) do dispose of sub window-1 created in #1"); subWin1?.Dispose(); } void TestCase3() { log.Fatal(tag, $"test 3 : 1) create sub window2 which doesn't have any setting 2) dispose it after 3 second delay"); subWin2 = null; subWin2 = new Window(); tm = new Timer(3000); tm.Tick += Tm_Tick; tm.Start(); } void TestCase4() { log.Fatal(tag, $"test 4 : 1) create sub window2 which has some setting 2) dispose it after 3 second delay"); subWin2 = null; subWin2 = new Window("subWin2", new Rectangle(100, 100, 100, 100), false); subWin2.BackgroundColor = Color.Red; tm = new Timer(3000); tm.Tick += Tm_Tick; tm.Start(); } void TestCase5() { log.Fatal(tag, $"test 5 : 1) create sub window2 which has some setting 2) add some dummy object 3) dispose it after 3 second delay"); subWin2 = null; subWin2 = new Window("subWin2", new Rectangle(500, 500, 300, 300), false); subWin2.BackgroundColor = Color.Red; View v1 = new View() { Size = new Size(50, 50), Position = new Position(50, 50), BackgroundColor = Color.Yellow, }; subWin2.Add(v1); tm = new Timer(3000); tm.Tick += Tm_Tick; tm.Start(); } private bool Tm_Tick(object source, Timer.TickEventArgs e) { log.Fatal(tag, $"after 3000ms, subwin2 dispose!"); subWin2?.Dispose(); return false; } private void SubWin1_KeyEvent(object sender, Window.KeyEventArgs e) { if (e.Key.State == Key.StateType.Down) { log.Fatal(tag, $"subWin1 key down! key={e.Key.KeyPressedName}"); switch (e.Key.KeyPressedName) { case "XF86Back": case "Escape": //Exit(); break; case "1": mainWin.Raise(); break; default: log.Fatal(tag, $"default!"); break; } } } public void Activate() { Initialize(); } public void Deactivate() { } } }