comp.lang.ada
 help / color / mirror / Atom feed
* More GUI
@ 2000-05-30  0:00 William J. Thomas
  2000-05-31  0:00 ` Emmanuel Briot
  0 siblings, 1 reply; 7+ messages in thread
From: William J. Thomas @ 2000-05-30  0:00 UTC (permalink / raw)


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









^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2000-06-01  0:00 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-05-30  0:00 More GUI William J. Thomas
2000-05-31  0:00 ` Emmanuel Briot
2000-05-31  0:00   ` Jerry van Dijk
2000-05-31  0:00     ` Ehud Lamm
2000-05-31  0:00       ` David Botton
2000-06-01  0:00         ` Ehud Lamm
2000-05-31  0:00   ` John English

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox