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:  ogasaw...@itpl.co.jp

_______________________________________________
Caml-list mailing list. Subscription management:
http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
Archives: http://caml.inria.fr
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs

Reply via email to