Re: Signals in Gtk+
- From: Sascha Ziemann <szi aibon ping de>
- To: gtk-list redhat com
- Subject: Re: Signals in Gtk+
- Date: 12 Sep 1998 12:39:40 +0200
Owen Taylor <otaylor@redhat.com> writes:
| > I need attributed signals. By this a widget would be able to say "yes
| > I want the timer signal, but only those running with 40 Hz".
|  gtk_signal_connect (GTK_OBJECT (forty_hz_timer), "expired",
|                      callback1, widget_a);
| 
|  gtk_signal_connect (GTK_OBJECT (fifty_hz_timer), "expired",
|                      callback2, widget_b);
I had something like this in mind:
  gtk_message_connect (GTK_OBJECT (widget_a), "clock", timer1, 40,
                       callback1);
  gtk_message_connect (GTK_OBJECT (widget_b), "clock", timer1, 50,
                       callback2);
This is not a signal any longer, but a message, because the client
reacts only on the signal, if the source (timer1) and the attribute
(Hz) matches.
But I am not sure if it makes sense to use signals for timer events,
because I do not know the overhead for a signal. An alternative can
be:
- writing a timer object
- the timer object does a gtk_input_add for the clock process
- the timer object has a `define' function to set the timeouts
- the timer object has a 'connect' function to register callbacks
  for the different timer events
What I tried to avoid is defining a new callback register function,
which possibly does not fit very well into the rest of the callback
stuff.
| Or are you saying you want a single object to generate both
| 40Hz and 50Hz signals?
Yes. When I use different objects for each timer, I have to put them
into a timer group, because they need to be synchronised.
-- 
/* In the beginning was the Word: */
typedef long SCM;
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]