From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id NAA15053; Tue, 22 Apr 2003 13:42:45 +0200 (MET DST) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id NAA14987 for ; Tue, 22 Apr 2003 13:42:44 +0200 (MET DST) Received: from aomori.annexia.org (annexia.force9.co.uk [212.56.101.183]) by nez-perce.inria.fr (8.11.1/8.11.1) with ESMTP id h3MBgdn15952 for ; Tue, 22 Apr 2003 13:42:40 +0200 (MET DST) Received: from rich by aomori.annexia.org with local (Exim 3.36 #1 (Debian)) id 197wAX-0003Ci-00 for ; Tue, 22 Apr 2003 12:42:37 +0100 Date: Tue, 22 Apr 2003 12:42:36 +0100 To: caml-list@inria.fr Subject: Re: [Caml-list] lablgtk newbie question Message-ID: <20030422114236.GB11783@redhat.com> References: <20030422105529.GA11783@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030422105529.GA11783@redhat.com> User-Agent: Mutt/1.5.3i From: Richard Jones X-Spam: no; 0.00; caml-list:01 lablgtk:01 newbie:01 gmain:01 gwindow:01 gpack:01 menubar:99 accel:01 submenu:99 callback:01 freshmeat:01 ltd:98 htmlman:01 ocaml:01 caml:01 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk More newbie questions ... Below is my program so far. It works, but it doesn't "look like" any of the example lablgtk programs. In particularly, I'm using a lot of ... let _ = ... basically to execute an imperative statement. Perhaps this is a legacy of the fact that I'm a very experienced imperative programmer. I think I'm really confused about these: let let ... in ; ;; Is there some good tutorial for this? My main reference is http://caml.inria.fr/ocaml/htmlman/manual003.html but that doesn't really explain these basics too well. Comments & guidance welcome. Rich. open GMain open GWindow open GdkKeysyms (* Top-level window *) let window = GWindow.window ~width:500 ~height:300 ~title:"Editor" () let vbox = GPack.vbox ~packing:window#add () (* Menu bar *) let menubar = GMenu.menu_bar ~packing:vbox#pack () let menubar_factory = new GMenu.factory menubar let accel_group = menubar_factory#accel_group let pages_menu = menubar_factory#add_submenu "Pages" let edit_menu = menubar_factory#add_submenu "Edit" (* Pages menu *) let pages_factory = new GMenu.factory pages_menu ~accel_group let _ = pages_factory#add_item "New blank page" ~key:_N let _ = pages_factory#add_item "Search ..." ~key:_S (* Edit menu *) let edit_factory = new GMenu.factory edit_menu ~accel_group let _ = edit_factory#add_item "Cut" ~key:_X let _ = edit_factory#add_item "Copy" ~key:_C let _ = edit_factory#add_item "Paste" ~key:_V let main () = window#connect#destroy ~callback: Main.quit; window#show (); Main.main ();; (* Run the main program *) let _ = main ();; -- Richard Jones, Red Hat Inc. (London) and Merjis Ltd. http://www.merjis.com/ http://www.annexia.org/ Freshmeat projects: http://freshmeat.net/users/rwmj MONOLITH is an advanced framework for writing web applications in C, easier than using Perl & Java, much faster and smaller, reusable widget-based arch, database-backed, discussion, chat, calendaring: http://www.annexia.org/freeware/monolith/ ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners