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
next prev 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