comp.lang.ada
 help / color / mirror / Atom feed
From: "Warren W. Gay VE3WWG" <ve3wwg@cogeco.ca>
Subject: Re: [OT] Best way to isolate a GUI? (The final concensous?)
Date: Thu, 20 Feb 2003 17:01:01 -0500
Date: 2003-02-20T17:01:01-05:00	[thread overview]
Message-ID: <3E55501D.9050006@cogeco.ca> (raw)
In-Reply-To: b32ie7$dfc$1@slb5.atl.mindspring.net

Marin David Condic wrote:
> I'd put the case statement part in the "Nice to have" category rather than
> view it as the loss of some essential capability. Most of what you get there
> is likely to be dealt with by dispatching & the rest is more of an
> inconvenience than anything else.
> 
> I'd agree that you don't want to totally rule out variant records.It is a
> foolish design rule to say "Thou shalt not use feature X - ever." I'd simply
> base the thing on tagged records and as the design evolved if circumstances
> made it look like a variant might be a good answer, go ahead and create one.
> My strategy would be tagged records, but I might use a tactic of a variant
> occasionally.
> 
> As for callbacks - I'd rather not see that at all. One or more message
> queues would seem more elegant to me. Maybe that's just me, but callbacks
> seem like some version of a computed goto - I've got to give you intimate
> knowledge of the inside of my code (plus, structure my code according to
> your whims) when I'd rather just have you send me data and let me figure out
> what to do with it.
> 
> MDC
...

I don't think you can easily avoid callbacks. The problem with GUIs is
that they tend to be dynamic. A popup is created (which has events),
and then is gone, for example. A task with queue entries tends to be
static in form. So if you end up with a task & queue model, you must
somehow permit dynamic wiring in of events somehow, and it tends
to be inconvenient in a static "form".

I was thinking of the requirements of the OP query, about
the isolation factor. Perhaps this has already been stated, but the
task & entry idea is not a bad one if you use the callbacks do
the rendezvous with the task. The callbacks handle the dynamic
linkage between the GUI and the task (callbacks = glue or wiring).
This is perhaps what you've been saying all along..

Then you simply specialize the queues accord
to events and widgets as required.  If properly done, you should be
able to link with a X11/MOTIF, Windows, GtkAda or whatever library
and maintain the same core.  At least that is the theory.

The one place where you might get foiled is the way that user data
is handled by each GUI.  To do this, I think you might need to use
a preprocessor like gnatprep.  Is this true?  Hmmm..

-- 
Warren W. Gay VE3WWG
http://home.cogeco.ca/~ve3wwg




  parent reply	other threads:[~2003-02-20 22:01 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-02-16 10:19 [OT] Best way to isolate a GUI? Jano
2003-02-16 14:47 ` Ed Falis
2003-02-16 14:49 ` Victor Porton
2003-02-17 20:52   ` Jano
2003-02-16 16:36 ` Robert C. Leif
2003-02-17  8:44   ` Preben Randhol
2003-02-17 16:22     ` Robert C. Leif
2003-02-17 17:30     ` Jeffrey Carter
2003-02-17 17:54       ` Warren W. Gay VE3WWG
2003-02-17 19:06         ` Randy Brukardt
2003-02-18  3:15           ` Warren W. Gay VE3WWG
2003-02-18 16:14             ` Robert C. Leif
2003-02-18 18:10             ` Randy Brukardt
2003-02-18 21:12               ` Warren W. Gay VE3WWG
2003-02-18 23:20                 ` Randy Brukardt
2003-02-19 18:28                   ` Warren W. Gay VE3WWG
2003-02-20 19:39                     ` Randy Brukardt
2003-02-20 21:34                       ` Warren W. Gay VE3WWG
2003-02-20  7:50                   ` Dale Stanbrough
2003-02-19 12:49                 ` Marin David Condic
2003-02-19 18:35                   ` [OT] Best way to isolate a GUI? (The final concensous?) Warren W. Gay VE3WWG
2003-02-20 12:40                     ` Marin David Condic
2003-02-20 13:13                       ` Dmitry A. Kazakov
2003-02-20 22:01                       ` Warren W. Gay VE3WWG [this message]
2003-02-21  1:25                         ` tmoran
2003-02-21  2:08                         ` Marin David Condic
2003-02-21 17:27                           ` Jeffrey Carter
2003-02-22 14:10                             ` Marin David Condic
2003-02-21 18:02                           ` Warren W. Gay VE3WWG
2003-02-22 14:49                             ` Marin David Condic
2003-02-22 22:50                               ` tmoran
2003-02-23  5:18                               ` Robert C. Leif
2003-02-24 18:06                               ` Warren W. Gay VE3WWG
2003-02-25  1:20                                 ` Robert C. Leif
2003-02-25 17:57                                   ` Warren W. Gay VE3WWG
2003-02-25 12:41                                 ` Marin David Condic
2003-02-25 13:32                                   ` Ole-Hjalmar Kristensen
2003-02-25 17:33                                     ` [OT] Best way to isolate a GUI? (The final fronteer?) Warren W. Gay VE3WWG
2003-02-20  8:26                   ` [OT] Best way to isolate a GUI? tmoran
2003-02-20 12:51                     ` Marin David Condic
2003-02-20 18:47                       ` tmoran
2003-02-17 19:31         ` tmoran
2003-02-18  1:37         ` Jeffrey Carter
2003-02-18  3:39           ` Warren W. Gay VE3WWG
2003-02-18 23:36           ` Randy Brukardt
2003-02-18 13:29         ` Marin David Condic
2003-02-18 18:01           ` Warren W. Gay VE3WWG
2003-02-19 13:06             ` Marin David Condic
2003-02-16 17:25 ` achrist
2003-02-16 21:24 ` Bobby D. Bryant
2003-02-16 21:52 ` David Marceau
2003-02-17  0:57 ` Re; " tmoran
2003-02-17  7:25   ` Jano
2003-02-17 14:09     ` Bobby D. Bryant
2003-02-17 21:12       ` Jano
2003-02-18  7:24         ` Jean-Pierre Rosen
2003-02-18 13:08 ` Marin David Condic
replies disabled

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