From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id 5D62BBDDB for ; Sat, 3 Sep 2005 13:48:38 +0200 (CEST) Received: from smtp10.wanadoo.fr (smtp10.wanadoo.fr [193.252.22.21]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id j83Bmcqd029590 for ; Sat, 3 Sep 2005 13:48:38 +0200 Received: from me-wanadoo.net (localhost [127.0.0.1]) by mwinf1001.wanadoo.fr (SMTP Server) with ESMTP id E485A18000B7 for ; Sat, 3 Sep 2005 13:48:35 +0200 (CEST) Received: from [81.53.198.50] (ANantes-154-1-43-50.w81-53.abo.wanadoo.fr [81.53.198.50]) by mwinf1001.wanadoo.fr (SMTP Server) with ESMTP id 5E6BB1800091; Sat, 3 Sep 2005 13:48:35 +0200 (CEST) X-ME-UUID: 20050903114835386.5E6BB1800091@mwinf1001.wanadoo.fr In-Reply-To: <3d13dcfc05083101196865c964@mail.gmail.com> References: <4311DA63.4010104@havenrock.com> <200508292333.59714.jon@ffconsultancy.com> <3d13dcfc050830001671d0974f@mail.gmail.com> <3F903DC1-3DE6-4D58-8032-CD1C19074E2F@wanadoo.fr> <3d13dcfc05083101196865c964@mail.gmail.com> Mime-Version: 1.0 (Apple Message framework v728) Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed Message-Id: Cc: Jon Harrop , caml-list@yquem.inria.fr Content-Transfer-Encoding: 7bit From: yoann padioleau Subject: Re: About Lablgtk2 (was: e: GUI for OCaml) Date: Sat, 3 Sep 2005 13:41:13 +0200 To: David MENTRE X-Mailer: Apple Mail (2.728) X-Miltered: at concorde with ID 43198D96.001 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; lablgtk:01 ocaml:01 gtk:01 ocaml:01 ocamldoc:01 lablgtk:01 gtk:01 widget:01 olabl:01 callbacks:01 irisa:01 ...:98 panes:98 pane:98 ...:98 X-Spam-Checker-Version: SpamAssassin 3.0.3 (2005-04-27) on yquem.inria.fr X-Spam-Level: ** X-Spam-Status: No, score=2.2 required=5.0 tests=DNS_FROM_RFC_ABUSE, DNS_FROM_RFC_POST,DNS_FROM_RFC_WHOIS autolearn=disabled version=3.0.3 > David mentre wrote: > Ok, let's me try to reword my criticism: I find the use of Labgtk2 > objects not easy at all. I find the use of objects and the class > hierarchy very confusing. Maybe this is just an issue of documenting > the general mapping of Gtk2 signals, objects, ... to OCaml modules and > objects. Maybe ocamldoc should be improved to allow unfolding a method > accessible through the class hierarchy in one class. Yes, that is a good idea. Some tools offer such a thing, for instance in Eiffel there is a command "short" and a command "long" that generate documentation from a class, the first one with only the new method, and second one with all the methods unfolded. > Or maybe I'm too > stupid to understand the toolkit. Or maybe I'm unable to grasp OCaml > objects. The net result is that using Lablgtk2 is really a pain. > > However, I do use Labgtk2 for the graphical interface of my > application so I at least consider that I have written enough code to > make my own point of view. With all the examples, I'm able to write > basic interface (i.e. buttons, menus, etc.) through copy/paste. > But > I'm still not able to write code that would match GUI design I would > like to have. Ok, that is certainly the reason why we dont have the same feeling about lablgtk, we must certainly not have the same standard of quality. I am quite satisfied with someting rudimentary. > > >>> necessary tools (GUI design application) would be very very helpful. >>> >> >> Do you really find useful such RAD tools ? >> > > Yes. Yes and yes. Have you ever programmed a GTk2 application? Yes, yes, and yes :) (well it was gtk). A few years ago I programmed one in C++ (I was forced by my school) so from this first experience I learned the toolkit, so maybe this experience was helpful when doing my second app with lablgtk (which was really easier than in c++). > Have > you ever see the number of options available for each widget? No. Well I dont use them most of the time, the optional arguments and keyword argumentss of olabl (now ocaml3)) is really a big help in that respect. You dont have to know all the options. > > I'm using Glade to produce the XML interface for Labgtk2 (of course, > callbacks are written in regular OCaml code). It saved me hours of > interface layout design. I'm not speaking of two buttons into a > window. I'm speaking of sliding panes, with several buttons, text > boxes and TreeView in each, I must admit that my application was not very advanced, but it had many different kind of widgets (buttons, text, boxes, pane, scrollist, menubar, labels, ...) Here is a screenshot: http://lfs.irisa.fr/~pad/LFSWEB/(ext:gif)|(ext:jpg)|(ext:png)/ name:lfs-itunes-screenshot0/ Just a light clone of iTunes, the music application of Apple. > playing with options to make relative > positioning suits your needs. The problem from what I remember is that glade fix position, it fix the size of your application, I prefer not to state any fixed position and let the user adjust the panes, scrollbar width, ... In my program I only state constraints (it must be right justified, it must be abobe that, ...). The reason is that I had previously been frustrated by application that you can run only in 1024x768, a applications where you cannot adjust the side of a subwindow, ... > > Yours, > d. > >