• R/O
  • SSH

提交

標籤

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Haxe wrapper for the libYUI library


Commit MetaInfo

修訂47986f81997fea2a2dba2f9805a3bab5dcbb5a29 (tree)
時間2022-03-16 06:24:01
作者Jaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@fast...>
CommiterJaime Marquínez Ferrándiz

Log Message

Reorganize the demo code

Change Summary

差異

diff -r 06cb683ac7f8 -r 47986f81997f Demo.hx
--- a/Demo.hx Tue Mar 15 21:53:39 2022 +0100
+++ b/Demo.hx Tue Mar 15 22:24:01 2022 +0100
@@ -3,30 +3,51 @@
33 // SPDX-License-Identifier: Unlicense
44
55 import yui.YUI;
6-import yui.YWidget;
6+import yui.YDialog;
7+import yui.YPushButton;
78
89 using cpp.Pointer;
10+using yui.hxHelpers.YWidgetHelper;
911
1012 class Demo {
1113 public static function main() {
14+ var mainWindow = new MainWindow();
15+ mainWindow.show();
16+ }
17+}
18+
19+class MainWindow {
20+ var dialog : Pointer<YDialog>;
21+ var okButton : Pointer<YPushButton>;
22+ var closeButton : Pointer<YPushButton>;
23+
24+ public function new() {
25+
26+ }
27+
28+ public function show() {
1229 var factory = YUI.widgetFactory().fromRaw().ref;
13- var dialog = factory.createPopupDialog().fromRaw().ref;
30+ this.dialog = factory.createPopupDialog().fromRaw();
1431 var vbox = factory.createVBox(dialog);
1532 factory.createLabel(vbox, "Hello, world");
1633
17- var okButton : cpp.Pointer<YWidget> = cast factory.createPushButton(vbox, "&OK");
18- var closeButton : cpp.Pointer<YWidget> = cast factory.createPushButton(vbox, "&Close");
34+ this.okButton = factory.createPushButton(vbox, "&OK").fromRaw();
35+ this.closeButton = factory.createPushButton(vbox, "&Close").fromRaw();
1936
37+ this.eventLoop();
38+ }
39+
40+ function eventLoop() {
2041 while (true) {
21- var eventPointer = dialog.waitForEvent();
42+ var eventPointer = dialog.ref.waitForEvent();
2243 if (eventPointer == null) {
2344 continue;
2445 }
2546 var event = eventPointer.fromRaw().ref;
2647 var eventType = event.eventType();
2748 trace('Event received ${eventType}');
28- var wid : cpp.Pointer<YWidget> = cpp.Pointer.fromRaw(event.widget());
29- if (wid == closeButton) {
49+ var wid = cpp.Pointer.fromRaw(event.widget());
50+ if (wid.ref.equals(closeButton.ref)) {
3051 trace("Close button pressed, exiting");
3152 break;
3253 }
@@ -38,6 +59,7 @@
3859 trace('Other event');
3960 }
4061 }
41- dialog.destroy();
62+
63+ this.dialog.ref.destroy();
4264 }
4365 }
\ No newline at end of file