comp.lang.ada
 help / color / mirror / Atom feed
From: Stephen Leake <stephen_leake@acm.org>
Subject: Re: Custom model in gtkada?
Date: Fri, 23 Jun 2006 08:32:45 -0400
Date: 2006-06-23T08:32:45-04:00	[thread overview]
Message-ID: <usllwjbma.fsf@acm.org> (raw)
In-Reply-To: mgfz59ck9hje.18zecgqt5ze9w$.dlg@40tude.net

"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> writes:

> On Thu, 22 Jun 2006 09:16:22 +0200, Emmanuel Briot wrote:
>
>> Dmitry A. Kazakov wrote:
>>> I would expect callbacks be primitive operations of a tagged type rather
>>> than pointers.
>> 
>> This is of course a design choice, and you can easily implement a small
>> layer on top of GtkAda to do just that.
>> The advantage with pointers is that you can add or remove callbacks during
>> the life of a widget, which is harder to do with primitive operations where
>> you need flags to know whether to react to the event or not. Also you can
>> have multiple callbacks on the same signal, which, again, is harder to do
>> with primitive operations.
>
> Maybe, though I doubt that events were a right design decision (as a
> notification mechanism).

How many GUI programs have you written? With how many different toolkits?

I've used Visual Basic (essentially tagged, I think :), Borland's C++
framework (tagged/dispatching), Windex (Ada tagged), GWindows (mixed
tagged/pointers), and Gtk (pointers).

I think Gtk is the best model, although the C underpinnings make
things difficult sometimes. In particular, it is difficult to detect
some errors at compile time, that the fully Ada systems can detect. At
root, the C pointers are not strongly typed.

> Another point, a list of pointers to subprograms is in no way better than a
> list of tagged objects (with primitive subprograms).

Why?

I would find a list of tagged objects confusing.

-- 
-- Stephe



  parent reply	other threads:[~2006-06-23 12:32 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-06-13 18:01 Custom model in gtkada? Dmitry A. Kazakov
2006-06-13 19:53 ` M E Leypold
2006-06-14  7:17   ` Dmitry A. Kazakov
2006-06-14 21:00 ` Maxim Reznik
2006-06-15  7:38   ` Dmitry A. Kazakov
2006-06-15 15:31     ` Georg Bauhaus
2006-06-15 16:24       ` Ed Falis
2006-06-15 18:44         ` M E Leypold
2006-06-15 16:25       ` Dmitry A. Kazakov
2006-06-17 15:13         ` Georg Bauhaus
2006-06-17 16:44           ` Dmitry A. Kazakov
2006-06-22  7:16             ` Emmanuel Briot
2006-06-22  8:31               ` Dmitry A. Kazakov
2006-06-22 12:08                 ` Emmanuel Briot
2006-06-23 12:32                 ` Stephen Leake [this message]
2006-06-23 13:58                   ` Dmitry A. Kazakov
2006-06-29 17:11                     ` Stephen Leake
2006-06-30 12:29                       ` Dmitry A. Kazakov
2006-07-02 15:17                         ` Stephen Leake
2006-07-03 18:23                           ` Dmitry A. Kazakov
2006-07-04 13:51                             ` Stephen Leake
2006-07-05 13:06                               ` Dmitry A. Kazakov
2006-07-06  7:10                                 ` Stephen Leake
2006-06-23 16:59                   ` Jeffrey R. Carter
2006-06-23 17:37                     ` Ed Falis
2006-06-23 18:11                     ` Dmitry A. Kazakov
2006-06-29 17:20                     ` Stephen Leake
2006-06-29 20:08                       ` Jeffrey R. Carter
2006-06-30 10:28                         ` Alex R. Mosteo
2006-06-30 16:07                         ` Stephen Leake
2006-06-30 19:45                           ` Jeffrey R. Carter
2006-06-30 22:41                             ` Randy Brukardt
2006-07-01  5:11                               ` Jeffrey R. Carter
replies disabled

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