|
@@ -21,20 +21,42 @@
|
|
|
*/
|
|
|
package neko.vm;
|
|
|
|
|
|
+/**
|
|
|
+ Core native User Interface support. This API uses native WIN32 API
|
|
|
+ on Windows, Carbon API on OSX, and GTK2 on Linux.
|
|
|
+*/
|
|
|
class Ui {
|
|
|
|
|
|
+ /**
|
|
|
+ Tells if the current thread is the main loop thread or not.
|
|
|
+ The main loop thread is the one in which the first "ui"
|
|
|
+ library primitive has been loaded.
|
|
|
+ */
|
|
|
public static function isMainThread() {
|
|
|
return _is_main_thread();
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ Starts the native UI event loop. This method can only be called
|
|
|
+ from the main thread.
|
|
|
+ */
|
|
|
public static function loop() {
|
|
|
_loop();
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ Stop the native UI event loop. This method can only be called
|
|
|
+ from the main thread.
|
|
|
+ */
|
|
|
public static function stopLoop() {
|
|
|
_sync(_stop_loop);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ Queue a method call callb to be executed by the main thread while
|
|
|
+ running the UI event loop. This can be used to perform UI updates
|
|
|
+ in the UI thread using results processed by another thread.
|
|
|
+ */
|
|
|
public static function sync( f : Void -> Void ) {
|
|
|
_sync(f);
|
|
|
}
|
|
@@ -64,4 +86,4 @@ class Ui {
|
|
|
static var _stop_loop = neko.Lib.load("ui","ui_stop_loop",0);
|
|
|
static var _sync = neko.Lib.load("ui","ui_sync",1);
|
|
|
|
|
|
-}
|
|
|
+}
|