* 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
* Re: More GUI 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 ` John English 0 siblings, 2 replies; 7+ messages in thread From: Emmanuel Briot @ 2000-05-31 0:00 UTC (permalink / raw) "William J. Thomas" <wjthomas@wcvt.com> wrote: > 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). > 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). > 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 ? > 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 ? > 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 > '. 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. > 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 !) > 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.deja.com/ Before you buy. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: More GUI 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 ` John English 1 sibling, 1 reply; 7+ messages in thread From: Jerry van Dijk @ 2000-05-31 0:00 UTC (permalink / raw) > > 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. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: More GUI 2000-05-31 0:00 ` Jerry van Dijk @ 2000-05-31 0:00 ` Ehud Lamm 2000-05-31 0:00 ` David Botton 0 siblings, 1 reply; 7+ messages in thread From: Ehud Lamm @ 2000-05-31 0:00 UTC (permalink / raw) On Wed, 31 May 2000, Jerry van Dijk wrote: | |> > 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). Ehud Lamm mslamm@mscc.huji.ac.il 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! ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: More GUI 2000-05-31 0:00 ` Ehud Lamm @ 2000-05-31 0:00 ` David Botton 2000-06-01 0:00 ` Ehud Lamm 0 siblings, 1 reply; 7+ messages in thread From: David Botton @ 2000-05-31 0:00 UTC (permalink / raw) 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 "Ehud Lamm" <mslamm@mscc.huji.ac.il> wrote in message > One thing that can be very cool is the ability to grab hold of availabe > interfaces on the system, right from the IDE. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: More GUI 2000-05-31 0:00 ` David Botton @ 2000-06-01 0:00 ` Ehud Lamm 0 siblings, 0 replies; 7+ messages in thread From: Ehud Lamm @ 2000-06-01 0:00 UTC (permalink / raw) On Wed, 31 May 2000, David Botton wrote: |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! Ehud Lamm mslamm@mscc.huji.ac.il 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! ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: More GUI 2000-05-31 0:00 ` Emmanuel Briot 2000-05-31 0:00 ` Jerry van Dijk @ 2000-05-31 0:00 ` John English 1 sibling, 0 replies; 7+ messages in thread From: John English @ 2000-05-31 0:00 UTC (permalink / raw) Emmanuel Briot wrote: > "William J. Thomas" <wjthomas@wcvt.com> wrote: > > 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. ----------------------------------------------------------------- John English | mailto:je@brighton.ac.uk 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 ----------------------------------------------------------------- ^ 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