Previous week Up Next week


Here is the latest Caml Weekly News, for the week of April 07 to 14, 2009.

  1. Amthing - a multi-threaded GUI library

Amthing - a multi-threaded GUI library


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
       +> C.make
   W.add_visible wh hello;
   W.set_title wh "amthing hello world!"; 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 -> ()
   forever main_loop ()

you can clone the repository from OCamlForge subversion :

 svn checkout svn://

or view souce code on the web.

Using folding to read the cwn in vim 6+

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

If you know of a better way, please let me know.

Old cwn

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.

Alan Schmitt