More GUI 
Author Message
 More GUI

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 t{*filter*}s 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



Sat, 16 Nov 2002 03:00:00 GMT  
 More GUI

Quote:
> 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.

Of course, this means that your code is less portable than it would be
otherwise. Most GUI toolkits are now designed to be as portable as
possible
(at least from the user's point of view). To speak of what I know,
several
people have been able to simply move their code from a Linux machine to
a
Windows machine and recompile, et voila! (I think the reverse has also
been
done).

Quote:
> 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.

The thing with that GUI builder is that is is programmed in C (:-(), and
is
used for several languages, from C to C++, Ada, Perl, ... Of course,
although
the development might be somewhat slower than what people would dream
of, this
means that the programming efforts can be combined to hammer the bugs
out
(yes, there are still quite a few left, especially on Windows, but
things are
improving steadily).

Quote:
> 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.

Note that the first step (fixed placement) is already doable with
gtk+/GtkAda,
the container is called suprisingly enough GtkFixed !  No automatic
resizing
is provided however. I don't remember seeing an interface where the size
of
the contents changes dynamically when the size of the window is changed.
Is
this something recommended by Microsoft GUI coding standards ?

Quote:
> Allow for the varied set of coordinate modes that VB allows for,
including
> twips.

Could you explain a little bit more what these are, for the non VB
specialists ?

Quote:
> A true Desktop Publishing type of multi-line text box, one that comes
with
> all of the t{*filter*}s found in  something like an 'Interleaf paragraph
object
> '.

The next major version of gtk+ (and of course of GtkAda) will have a
much
improved text widget, very close to what is currently provided by Tcl/Tk
(ie
the text can have many properties, you can add pixmaps,...)  It will
also
support internationalization much better than is currently the case.

Quote:
> 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.

I think most of the Ada GUI toolkits are trying to provide this kind of
abstraction, even when the underlying toolkit is not object-oriented.
This
makes it for instance easier to use gtk+ from Ada95 than from C (*less*
type
casting !)

Quote:
> 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.

This probably won't be done as far as GtkAda is concerned. Our main goal
is to
be portable accross plateforms, at least everywhere ACT and ACT-Europe
have
ported GNAT. Having too many OS-specific features makes things harder to
port...

Emmanuel
GtkAda team

Sent via Deja.com http://www.*-*-*.com/
Before you buy.



Sun, 17 Nov 2002 03:00:00 GMT  
 More GUI

Quote:


> > 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.

> Note that the first step (fixed placement) is already doable with
> gtk+/GtkAda,
> the container is called suprisingly enough GtkFixed !  No automatic
> resizing
> is provided however. I don't remember seeing an interface where the size
> of
> the contents changes dynamically when the size of the window is changed.
> Is
> this something recommended by Microsoft GUI coding standards ?

JEWL allows this to some extent: component sizes <= 0 are taken as
relative to the parent container size and are resized automatically
if the parent size changes, and top/left coordinates < 0 are relative
to the bottom/right of the parent container and are repositioned
automatically when the parent size changes.

-----------------------------------------------------------------

 Senior Lecturer           | http://www.it.bton.ac.uk/staff/je
 Dept. of Computing        | ** NON-PROFIT CD FOR CS STUDENTS **
 University of Brighton    |    -- see http://burks.bton.ac.uk
-----------------------------------------------------------------



Sun, 17 Nov 2002 03:00:00 GMT  
 More GUI

Quote:
> > 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.

> This probably won't be done as far as GtkAda is concerned. Our main goal
> is to
> be portable accross plateforms, at least everywhere ACT and ACT-Europe
> have
> ported GNAT. Having too many OS-specific features makes things harder to
> port...

True, but for those people that develop for the Win32 environment only,
there is no reason not to use OCX components. Using David Botton's GNATCOM,
allows you to both use COM, ActiveX, OCX components from Ada, or to even
write
new ones.

And, of course, I should put in the remark that COM technology is not NT
specific per se.

Jerry.



Sun, 17 Nov 2002 03:00:00 GMT  
 More GUI

|
|> > 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.
|>
[snip]
|
|True, but for those people that develop for the Win32 environment only,
|there is no reason not to use OCX components. Using David Botton's GNATCOM,
|allows you to both use COM, ActiveX, OCX components from Ada, or to even
|write
|new ones.
|
|And, of course, I should put in the remark that COM technology is not NT
|specific per se.
|

One thing that can be very cool is the ability to grab hold of availabe
interfaces on the system, right from the IDE. Something like this was
discussed on yhe Dylan group, with reference to one Dylan impl. (don't
recall which). The poster said something along the lines of "WOW! I just
asked for XML and got the interface to the MS DLL which I could then use."

Maybe something like this (using David's important contributions, of
course) could be integrated into one of the IDEs. (GIDE which seems to be
PC-centric or GLIDE).


http://purl.oclc.org/NET/ehudlamm <== My home on the web
Check it out and subscribe to the E-List- for interesting essays and more!



Sun, 17 Nov 2002 03:00:00 GMT  
 More GUI
In the works for the next GNATCOM release is a GUI front end to BindCOM that
would allow you among other things to pick COM objects installed on the
system and generate bindings for them. The code from it could easily be
integrated in to IDEs or just launched from the tool.

David Botton

Quote:

> One thing that can be very cool is the ability to grab hold of availabe
> interfaces on the system, right from the IDE.



Sun, 17 Nov 2002 03:00:00 GMT  
 More GUI

|In the works for the next GNATCOM release is a GUI front end to BindCOM that
|would allow you among other things to pick COM objects installed on the
|system and generate bindings for them. The code from it could easily be
|integrated in to IDEs or just launched from the tool.
|

I had a feeling this is where things are headed. All I can say is: Great!


http://purl.oclc.org/NET/ehudlamm <== My home on the web
Check it out and subscribe to the E-List- for interesting essays and more!



Mon, 18 Nov 2002 03:00:00 GMT  
 
 [ 7 post ] 

 Relevant Pages 

1. ** APS (GUI) opportunity ** APS (GUI) ** APS (GUI) Experience required

2. Abstracted GUI APIs (was: RANT: Ruby GUI API)

3. ANN: Locana GUI and GUI Builder version 0.81

4. ANNOUNCE: X-GUI Testbench GUI Builder

5. ANNOUNCE: X-GUI Testbench GUI Builder

6. GUI Comparison Book (Was: Pyhton GUI Abstraction)

7. Incorporating Apache GUI into existing TCL/TK GUI

8. conversion Tcl/Tk (with GUI) to Tcl (without GUI)

9. gui gui-builder?

10. Starting a python GUI from another python GUI.

11. Starting a python GUI from another python GUI.

12. GUI and non GUI in same binary?

 

 
Powered by phpBB® Forum Software