From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.7 required=5.0 tests=AWL,SPF_SOFTFAIL autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by yquem.inria.fr (Postfix) with ESMTP id 9E9EFBBC4 for ; Tue, 14 Apr 2009 07:09:31 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AosDAJG340nY5v4vmWdsb2JhbACWMwEBAQEBCAsKBxG2RYN8Bg X-IronPort-AV: E=Sophos;i="4.40,183,1238968800"; d="scan'208";a="24529525" Received: from unknown (HELO amout07.alpha-mail.net) ([216.230.254.47]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-SHA; 14 Apr 2009 07:09:30 +0200 Received: from ltsub.alpha-mail.net (ltsub [216.230.254.26]) by amout07.alpha-mail.net with ESMTP id n3E59Ot1019261; Tue, 14 Apr 2009 14:09:24 +0900 Received: from [192.168.0.104] (196.62.205.61.west.global.alpha-net.ne.jp [61.205.62.196]) by ltsub.alpha-mail.net (Alpha-mail) with ESMTP id 7FF0E3B80A1; Tue, 14 Apr 2009 14:09:23 +0900 (JST) Message-Id: <0710E27F-A4AD-4EFE-A11A-C86B915560FE@itpl.co.jp> From: Satoshi Ogasawara To: caml-list@inria.fr Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: [ANN]Amthing - a multi-threaded GUI library Mime-Version: 1.0 (Apple Message framework v930.3) Date: Tue, 14 Apr 2009 14:11:10 +0900 X-Mailer: Apple Mail (2.930.3) X-Spam: no; 0.00; ocaml:01 util:01 viewcvs:01 sprite:98 sprite:98 55.:98 lazy:02 parameter:02 match:02 functional:02 color:97 color:97 binding:02 module:03 module:03 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