4 using Tizen.NUI.BaseComponents;
6 using System.Threading.Tasks;
8 namespace Tizen.NUI.Samples
10 using tlog = Tizen.Log;
11 public class AddFrameRenderedCallbackTest : IExample
13 const string tag = "NUITEST";
15 public void Activate()
19 public void Deactivate()
24 Window.FrameCallbackType cb;
29 tlog.Fatal(tag, $"test start");
30 win = NUIApplication.GetDefaultWindow();
31 win.TouchEvent += WinTouchEvent;
33 view.Size = new Size(100, 100);
34 view.BackgroundColor = Color.Blue;
35 view.Focusable = true;
36 view.KeyEvent += View_KeyEvent;
40 win.AddFrameRenderedCallback(cb, 0);
41 win.AddFramePresentedCallback(cb, 0);
43 Timer timer = new Timer(5000);
44 timer.Tick += testOnTick;
47 tl = new TextLabel("frameId");
48 tl.Size = new Size(500, 200);
49 tl.Position = new Position(10, 200);
50 tl.BackgroundColor = Color.White;
53 FocusManager.Instance.SetCurrentFocusView(view);
56 private void WinTouchEvent(object sender, Window.TouchEventArgs e)
58 win.AddFrameRenderedCallback(cb, cnt++);
59 Console.WriteLine($"testOnTick() AddFrameRenderedCallback() send id={cnt}");
60 win.AddFramePresentedCallback(cb, cnt++);
61 Console.WriteLine($"testOnTick() AddFramePresentedCallback() send id={cnt}");
65 bool testOnTick(object o, Timer.TickEventArgs e)
67 win.AddFrameRenderedCallback(cb, cnt++);
68 Console.WriteLine($"testOnTick() AddFrameRenderedCallback() send id={cnt}");
69 win.AddFramePresentedCallback(cb, cnt++);
70 Console.WriteLine($"testOnTick() AddFramePresentedCallback() send id={cnt}");
74 void testCallback(int id)
76 tlog.Fatal(tag, $"testCallback() id={id}");
77 tl.Text = $"frameId={id}";
80 private bool View_KeyEvent(object source, View.KeyEventArgs e)
82 if (e.Key.State == Key.StateType.Down)
84 if (e.Key.KeyPressedName == "1")
87 win.AddFrameRenderedCallback(cb, cnt++);
88 tlog.Fatal(tag, $"1) testOnTick() AddFrameRenderedCallback() send id={cnt}");
90 else if (e.Key.KeyPressedName == "2")
93 win.AddFramePresentedCallback(cb, cnt++);
94 tlog.Fatal(tag, $"2) testOnTick() AddFramePresentedCallback() send id={cnt}");
96 else if (e.Key.KeyPressedName == "3")
99 win.AddFramePresentedCallback(cb, cnt++);
101 tlog.Fatal(tag, $"3) testOnTick() AddFramePresentedCallback() send id={cnt}");
103 else if (e.Key.KeyPressedName == "4")
105 win.AddFrameRenderedCallback((int id) =>
107 tlog.Fatal(tag, $"testCallback() id={id}");
108 tl.Text = $"frameId={id}";
110 tlog.Fatal(tag, $"4) testOnTick() AddFrameRenderedCallback() send id={cnt}");
112 else if (e.Key.KeyPressedName == "Return")
114 Random rand = new Random();
115 view.BackgroundColor = new Color((float)rand.NextDouble(), (float)rand.NextDouble(), (float)rand.NextDouble(), 1);
123 public async Task Test_AddFrameRenderedCallback()
125 var isCalled = false;
126 Tizen.NUI.Window.FrameCallbackType callback = (int id) =>
131 win.AddFrameRenderedCallback(callback, 0);
133 await Task.Delay(500).ConfigureAwait(false);
135 Assert.IsTrue(isCalled, "isCalled should be true");
138 public async Task Test_AddFramePresentedCallback()
140 var isCalled = false;
141 Tizen.NUI.Window.FrameCallbackType callback = (int id) =>
146 win.AddFramePresentedCallback(callback, 0);
148 await Task.Delay(500).ConfigureAwait(false);
150 Assert.IsTrue(isCalled, "isCalled should be true");
154 public void Test_AddFrameRenderedCallbackNegative()
158 win.AddFrameRenderedCallback(null, 0);
162 if (ex is ArgumentNullException)
168 Assert.Fail("ArgumentNullException should occur");
174 public void Test_AddFramePresentedCallbackNegative()
178 win.AddFramePresentedCallback(null, 0);
182 if (ex is ArgumentNullException)
188 Assert.Fail("ArgumentNullException should occur");
193 public async Task Test_AddFrameRenderedCallbackId()
196 Tizen.NUI.Window.FrameCallbackType callback = (int id) =>
202 win.AddFrameRenderedCallback(callback, testId);
204 await Task.Delay(500).ConfigureAwait(false);
206 Assert.AreEqual(testId, checkId, "should be same");
210 public async Task Test_AddFramePresentedCallbackId()
213 Tizen.NUI.Window.FrameCallbackType callback = (int id) =>
219 win.AddFramePresentedCallback(callback, testId);
221 await Task.Delay(500).ConfigureAwait(false);
223 Assert.AreEqual(testId, checkId, "should be same");