From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.7 required=5.0 tests=BAYES_00,INVALID_MSGID,XPRIO, XPRIO_SHORT_SUBJ autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,e376d32d2036a816,start X-Google-Attributes: gid103376,public From: "William J. Thomas" Subject: More GUI Date: 2000/05/30 Message-ID: #1/1 X-Deja-AN: 629195782 X-Priority: 3 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6600 X-Trace: eagle.america.net 959723552 206.27.102.156 (Tue, 30 May 2000 17:52:32 EDT) Organization: 24hoursupport.com X-MSMail-Priority: Normal NNTP-Posting-Date: Tue, 30 May 2000 17:52:32 EDT Newsgroups: comp.lang.ada Date: 2000-05-30T00:00:00+00:00 List-Id: I really enjoy all this talk about Ada GUI Builders, I wrote in a snide "there aint nothing like VB" remark a while ago and received a similar volley of criticisms and suggestions similar to the ones that followed the previous Ada GUI posting. I have used several of the Ada GUI builder products over the years (military/avionics applications) and have developed some serious and "good looking" applications with them. But I am now in the process of developing a commercial product in my spare time. It is a Bible studying product and one of the things that differentiate it from the competing products on the market it the visual metaphor I have developed for viewing and navigating the Bible. The problem is the metaphor is extremely fast and easy to use but complex and difficult to code. You might be happy to know that even VB falls short and I find myself dipping into the Win32API more and more. You maybe happy to know that most of the code is in Ada95, only the visuals are in VB. I accomplished this by developing an Ada abstraction around the concept of "shared memory" in the Win32API. I then developed a "copy" dll in Ada that I could call from VB. I then implemented the same shared memory abstraction in VB and I now send GUI messages between my Ada95 and VB code using an abstraction that looks like a communications channel view of the world. It has all worked out nicely I get to have my Ada cake and VB too. The whole thing has made me a convert to GNAT. GNAT was the only Ada95 compiler that let we generate a dll that would work properly with VB and I even had problems with that (the dll would only work in a Windows 95 environment until the dll was compiled and linked on a Windows NT 4.0). I think that when GNAT 3.13 is available I will do all of my development in that compiler and abandon the 'professional' version of my other Ada95 compiler. God bless Robert Dewar and the folks at ACT, they are responsible for a growing Ada culture that I thought I would never see. What we need now is a couple of dedicated people who are determined to produce a world class Ada GUI builder, one better than the VC++ or VB environments. One of the best I have seen so far is the GtkAda GUI builder. If you could work the Windows bugs out, that would be a good starting place. Some suggestions for the Ada GUI builders:: A box, container, or even a window widget that allows for the fixed placement of all others components inside it, but once the container is manually resized at runtime it allows for the automatic resizing of all of the fixed placed and sized components inside of it. This would be one step better than VB does right now, it allows for the design time precise fixed positioning and sizing of components but you have to write your own resizing code. Allow for the varied set of coordinate modes that VB allows for, including twips. A true Desktop Publishing type of multi-line text box, one that comes with all of the trimmings found in something like an 'Interleaf paragraph object '. Continue to refine the Ada interfaces to allow for the true object oriented development of new tools or widgets. The easier it is to develop new and more powerful tools in an 'extend and combine manner' the more popular the whole application will become. Also stretch things a little farther into the Windows realm and find some way of incorporating OCX components into the application, find a way to do this (without crashing minutes after the inclusion of an OCX component) and you are on your way. That will do for a start. Thanks for your ear. William J. Thomas