Version française
Home     About     Download     Resources     Contact us    
Browse thread
[ANN]Amthing - a multi-threaded GUI library
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Satoshi Ogasawara <ogasawara@i...>
Subject: [ANN]Amthing - a multi-threaded GUI library
Hello list,

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


have fun,

---
 Ogasawara Satoshi
    | - Email:  ogasawara@itpl.co.jp