comp.lang.ada
 help / color / mirror / Atom feed
From: Stephen Leake <stephen_leake@acm.org>
To: comp.lang.ada@ada-france.org
Subject: Re: A community Windows binding
Date: 09 Oct 2004 09:20:23 -0400
Date: 2004-10-09T09:20:23-04:00	[thread overview]
Message-ID: <mailman.249.1097328040.390.comp.lang.ada@ada-france.org> (raw)
In-Reply-To: <KgH9d.9844$M05.267@newsread3.news.pas.earthlink.net>

Jeffrey Carter <spam@spam.com> writes:

> Callbacks and dispatching are essentially the same thing in a
> windowing system. You have to write little pieces of code that can be
> invoked in any order at any time outside your control. You have to use
> global variables extensively for these little pieces of code to
> communicate. The code is difficult to read because you have to
> understand all these little pieces to understand any part of the
> software.

In Windex, GWindows, CLAW, and GtkAda, each "little piece of code" has
as a parameter the user window type. That type stores all the
information needed; no global variables are necessary.

I can (with a lot of effort to suppress my normal style :) write
messy, hard to read code in Windex, using global variables. But it's
certainly not required.

> With an event queue approach, one writes standard imperative
> software using your standard imperative language (Ada's about the
> only one). The code is well structured and easy to read and
> understand.

MS Windows has an event queue. The core program in Windex, CLAW, and
GWindows reads events from the event queue as they become available,
and calls the appropriate handler, via dispatching. or optionally via
a registered callback in GWindows.

The handler may make GUI calls that put other events on the event
queue (like "invalidate this rectangle" or "hide this widget"). Some
GUI calls call the main event handler directly, rather than going thru
the queue.

GtkAda is similar, but fewer things go thru the queue, and all handlers
are registered callbacks.

What is it you are talking about that is different?

I guess I should go look at the JEWL code.

-- 
-- Stephe




  parent reply	other threads:[~2004-10-09 13:20 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <usm8shkul.fsf@acm.org>
2004-10-05 23:28 ` A community Windows binding Stephen Leake
2004-10-06  4:26   ` David Botton
2004-10-06 17:42     ` Jeffrey Carter
2004-10-07 16:33       ` Warren W. Gay VE3WWG
2004-10-07 17:37         ` Jeffrey Carter
2004-10-08  2:39           ` Alexander E. Kopilovich
2004-10-08  2:43           ` Nick Roberts
2004-10-08  4:56             ` tmoran
2004-10-08 23:17             ` chris
2004-10-09  1:31             ` Jeffrey Carter
2004-10-09  1:36             ` Jeffrey Carter
2004-10-09  3:15               ` Steve
2004-10-09  6:23                 ` tmoran
     [not found]                 ` <z7ybd.26154$hk6.998363@news20.bellglobal.com>
2004-10-15  1:12                   ` Stephen Leake
2004-10-15 20:36                     ` David Botton
2004-10-17 13:25                       ` Stephane Riviere
2004-10-09 13:20               ` Stephen Leake [this message]
2004-10-10  9:04                 ` CBFalconer
2004-10-10 14:39                   ` Stephen Leake
2004-10-14 16:54                     ` Warren W. Gay VE3WWG
2004-10-14 16:53                   ` Warren W. Gay VE3WWG
2004-10-10  3:38               ` David Botton
2004-10-14 16:46             ` Warren W. Gay VE3WWG
     [not found]           ` <rSftVP19_F@VB1162.spb.edu>
2004-10-08  8:18             ` Marius Amado Alves
2004-10-08  1:36         ` Stephen Leake
2004-10-06  4:28   ` CBFalconer
2004-10-06  6:02     ` tmoran
2004-10-06 11:35     ` Georg Bauhaus
2004-10-06 14:04       ` Steve
2004-10-06  6:22   ` Fionn mac Cuimhaill
2004-10-06 17:18   ` Nick Roberts
2004-10-07  6:38   ` Frank Piron
2004-10-07  9:44   ` Ross Higson
2004-10-07 16:39     ` Warren W. Gay VE3WWG
2004-10-07 22:27       ` Ross Higson
     [not found] <41664D4E.7040405@netcabo.pt>
2004-10-08 21:38 ` Alexander E. Kopilovich
     [not found] <uacv0hhj0.fsf_-_@acm.org>
2004-10-10 18:05 ` Stephen Leake
2004-10-10 18:17   ` Andre
2004-10-10 20:55     ` tmoran
2004-10-11  0:34   ` David Botton
2004-10-11  0:39   ` David Botton
replies disabled

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