Hello
Here is the latest Caml Weekly News, for the week of April 07 to 14, 2009.
Archive: http://groups.google.com/group/fa.caml/browse_thread/thread/af09a302fa8ab70e#
Ogasawara Satoshi announced:
I'm please to announce the first public release of Amthing, a multi-threaded
GUI library for OCaml.
Features are:
- Multi-threaded design using Concurrent ML style message passing.
- Time-line animation and functional reactive sprite system.
- X11 Binding.
- 2D vector rendering by cairo.
Here's a "Hello world" example of Amthing.
open Ccell
open Event
open Amthing.Util.Persavatives
module W = Amthing.Core.Window ( Amthing.XWindow )
module K = Amthing.KeyCode
module E = Amthing.WinEvent
module S = Amthing.Sprite
module C = Amthing.Component
let wh = W.make (Amthing.XWindow.default_parameter ())
let tc = lazy (W.make_text_context wh)
let _ =
W.resize wh {| x = 0; y = 0; w = 200; h = 200 |};
let hello =
new S.label !$tc "hello world!"
+> S.set (`X 55.)
+> S.set (`Y 90.)
+> S.set (`Color Amthing.Color.blue)
+> C.make
in
W.add_visible wh hello;
W.set_title wh "amthing hello world!";
W.show wh;
let main_loop () =
match select [ Bcast.receive (W.event wh) ] with
`KEY_PRESS input when E.key_code input = Some K._q ->
W.close wh;
exit 0
| #E.t -> ()
in
forever main_loop ()
you can clone the repository from OCamlForge subversion :
svn checkout svn://svn.forge.ocamlcore.org/svnroot/amthing
or view souce code on the web.
http://forge.ocamlcore.org/plugins/scmsvn/viewcvs.php/trunk/?root=amthing
Here is a quick trick to help you read this CWN if you are viewing it using vim (version 6 or greater).
:set foldmethod=expr
:set foldexpr=getline(v:lnum)=~'^=\\{78}$'?'<1':1
zM
If you know of a better way, please let me know.
If you happen to miss a CWN, you can send me a message and I'll mail it to you, or go take a look at the archive or the RSS feed of the archives.
If you also wish to receive it every week by mail, you may subscribe online.