From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Properties
Date: Wed, 1 Dec 2010 22:13:23 +0100
Date: 2010-12-01T22:13:22+01:00 [thread overview]
Message-ID: <1qm78dl0lao3q$.2hxqpchz908z.dlg@40tude.net> (raw)
In-Reply-To: a8c71024-1ab4-4b87-9048-a32e9d2d82e7@r40g2000prh.googlegroups.com
On Wed, 1 Dec 2010 11:36:57 -0800 (PST), Shark8 wrote:
>>> Agreed, but I don't believe we're stuck with that solution.
>>> All you need is procedure'Access for the callback.
>>
>>No, because events have parameters and those must be typed.
>>The standard solution is that you instantiate a generic (and
>>there is one for each number of parameters and the results).
>>That is extremely boring.
>
> Er, why not use OO/tagged-records for the events themselves and let
> the base-handler have that as a parameter?
>
> i.e. the handler would be an access to something like this:
> Procedure On_Event( Object : in out : GUI_Object; --'Class?
> Event : In Base_Event'Class );
Yes, event handlers are naturally doubly dispatching, this is why you were
not sure if On_Event should be a primitive operation of GUI_Object. It
should and it also should be one of the Base_Event. Unless you downcast in
the handler body.
Another issue with the above is that you will have to derive from
Base_Event somewhere this might be actually forbidden. On_Event is a
closure, which is tend to be a subprogram rather than a primitive
operation.
Event parameters usually marshaled, which might be difficult.
Yet another issue. Handlers actually connect the GUI object and the context
of the handler. The context, if not of a closure, then another GUI object.
E.g. normally one object catches events of another. In a GUI objects are
usually collected. So you need a mechanism which disconnects the handler if
any of the objects get destroyed. In any case it is probably triply
dispatching:
procedure On_Event
(Emitter, Observer : in out : GUI_Object; Event : In Base_Event);
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
next prev parent reply other threads:[~2010-12-01 21:13 UTC|newest]
Thread overview: 96+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-28 3:21 Properties Shark8
2010-11-28 8:15 ` Properties Dmitry A. Kazakov
2010-11-28 19:43 ` Properties Shark8
2010-11-29 8:34 ` Properties Dmitry A. Kazakov
2010-12-01 18:15 ` Properties Shark8
2010-11-28 12:37 ` Properties Georg Bauhaus
2010-11-28 21:22 ` Properties Shark8
2010-11-29 16:54 ` Properties Georg Bauhaus
2010-12-01 19:52 ` Properties Martin Krischik
2010-12-01 23:24 ` Properties Georg Bauhaus
2010-12-05 16:15 ` (placepo) Properties Martin Krischik
2010-12-06 23:24 ` Shark8
2010-12-01 23:31 ` Properties Georg Bauhaus
2010-11-30 1:49 ` Properties Randy Brukardt
2010-11-30 16:58 ` Properties Charmed Snark
2010-11-30 17:22 ` Properties Dmitry A. Kazakov
2010-11-30 20:27 ` Properties Warren
2010-12-01 8:39 ` Properties Dmitry A. Kazakov
2010-12-01 15:21 ` Properties Warren
2010-12-01 15:59 ` Properties Dmitry A. Kazakov
2010-12-01 16:20 ` Properties Warren
2010-12-01 18:22 ` Properties Dmitry A. Kazakov
2010-12-01 19:36 ` Properties Shark8
2010-12-01 21:13 ` Dmitry A. Kazakov [this message]
2010-12-01 21:35 ` Properties Maciej Sobczak
2010-12-01 21:45 ` Properties Dmitry A. Kazakov
2010-12-02 9:57 ` Properties Maciej Sobczak
2010-12-02 10:26 ` Properties Dmitry A. Kazakov
2010-12-02 15:25 ` Properties Maciej Sobczak
2010-12-02 15:46 ` Properties Dmitry A. Kazakov
2010-12-02 21:11 ` Properties Maciej Sobczak
2010-12-02 22:19 ` Properties Dmitry A. Kazakov
2010-12-03 4:43 ` Properties Randy Brukardt
2010-12-03 13:53 ` Properties Maciej Sobczak
2010-12-03 21:32 ` Properties Randy Brukardt
2010-12-04 22:13 ` Properties Maciej Sobczak
2010-12-06 23:30 ` Properties Shark8
2010-12-06 23:33 ` Properties Randy Brukardt
2010-12-04 17:43 ` Properties Simon Wright
2010-12-04 20:48 ` Properties Dmitry A. Kazakov
2010-12-04 22:27 ` Properties Simon Wright
2010-12-04 22:31 ` Properties Vinzent Hoefler
2010-12-03 4:24 ` Properties Randy Brukardt
2010-12-03 5:00 ` Properties Shark8
2010-12-03 21:10 ` Properties Randy Brukardt
2010-12-03 23:34 ` Properties Jeffrey Carter
2010-12-06 6:02 ` Properties Brad Moore
2010-12-06 23:25 ` Properties Shark8
2010-12-01 19:48 ` Properties Randy Brukardt
2010-12-01 21:10 ` Properties Warren
2010-12-02 0:03 ` Properties Shark8
2010-12-02 16:45 ` Properties Warren
2010-12-02 17:32 ` Properties Dmitry A. Kazakov
2010-12-02 20:45 ` Properties Warren
2010-12-02 21:17 ` Properties Adam Beneschan
2010-12-02 21:40 ` Properties Warren
2010-12-03 3:34 ` Properties Shark8
2010-12-03 8:16 ` Properties Thomas Løcke
2010-12-02 20:52 ` Properties Pascal Obry
2010-12-02 19:46 ` Properties Adam Beneschan
2010-12-02 20:38 ` Properties Warren
2010-12-02 21:39 ` Properties Jeffrey Carter
2010-12-02 21:55 ` Properties Warren
2010-12-03 9:33 ` Properties Anonymous
2010-12-03 3:47 ` Properties Shark8
2010-12-03 0:09 ` Properties Robert A Duff
2010-12-03 15:49 ` Properties Warren
2010-12-03 20:07 ` Properties Shark8
2010-12-06 21:01 ` Properties Warren
2010-12-06 23:22 ` Properties Shark8
2010-12-07 14:37 ` Properties Warren
2010-12-08 21:13 ` Properties Simon Wright
2010-12-09 1:21 ` Properties Shark8
2010-12-06 23:43 ` Properties Randy Brukardt
2010-12-07 0:56 ` Properties Jeffrey Carter
2010-12-07 11:23 ` Properties Maciej Sobczak
2010-12-07 11:51 ` Properties Georg Bauhaus
2010-12-07 15:35 ` Properties Maciej Sobczak
2010-12-07 17:02 ` Properties Georg Bauhaus
2010-12-07 14:39 ` Properties Warren
2010-12-03 15:40 ` Properties Warren
2010-12-03 19:56 ` Properties Shark8
2010-12-03 20:12 ` Properties Warren
2010-12-03 5:53 ` Properties Shark8
2010-12-03 9:05 ` Properties Dmitry A. Kazakov
2010-12-03 19:52 ` Properties Shark8
2010-12-03 21:14 ` Properties Randy Brukardt
2010-12-04 5:35 ` Properties Shark8
2010-12-04 14:23 ` Properties Peter C. Chapin
2010-12-04 18:53 ` Properties Shark8
2010-12-13 15:10 ` Properties Brian Drummond
2010-12-03 22:38 ` Properties Dmitry A. Kazakov
2010-12-04 3:12 ` Properties Shark8
2010-12-04 13:19 ` Properties Georg Bauhaus
-- strict thread matches above, loose matches on Subject: below --
2010-12-04 19:53 Properties Shark8
2010-12-04 23:27 ` Properties Thomas Løcke
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox