From ad3c6e6d7ee4a3f3557667ef9d876963287be841 Mon Sep 17 00:00:00 2001 From: belliash Date: Mon, 8 Apr 2019 13:58:40 +0200 Subject: [PATCH] Closure event test. --- tests/closure_event.aer | 41 +++++++++++++++++++++++++++++++++++++++++ tests/closure_event.exp | 1 + 2 files changed, 42 insertions(+) create mode 100644 tests/closure_event.aer create mode 100644 tests/closure_event.exp diff --git a/tests/closure_event.aer b/tests/closure_event.aer new file mode 100644 index 0000000..12627b3 --- /dev/null +++ b/tests/closure_event.aer @@ -0,0 +1,41 @@ +class Button { + public callback $OnBeforeClick; + public callback $OnAfterClick; + public string $Name; + + public void __construct() { + $this->Name = 'MyButton'; + } + + public void Click() { + $this->DoBeforeClick(); + print('Click!'); + $this->DoAfterClick(); + } + + private void DoBeforeClick() { + if($this->OnBeforeClick) { + callback $event = $this->OnBeforeClick; + $event($this); + } + } + + private void DoAfterClick() { + if($this->OnAfterClick) { + callback $event = $this->OnAfterClick; + $event($this); + } + } + +} + +class Program { + + void main() { + object $MyWidget = new Button(); + $MyWidget->OnBeforeClick = void(object $Sender) { print($Sender->Name + ' (Before Click)'); }; + $MyWidget->OnAfterClick = void(object $Sender) { print($Sender->Name + ' (After Click)'); }; + $MyWidget->Click(); + } + +} diff --git a/tests/closure_event.exp b/tests/closure_event.exp new file mode 100644 index 0000000..750a77a --- /dev/null +++ b/tests/closure_event.exp @@ -0,0 +1 @@ +MyButton (Before Click)Click!MyButton (After Click)