On Mon, 2010-05-10 at 20:50 +0000, Piscium wrote:
> And what are the advantages of each way of connecting signals?
> 
> It seems to me that overriding a signal method requires less typing, and 
> results perhaps in more readable code.
> 
> On the other hand, the method on_expose_event used in DrawingArea is 
> protected, so one can override it only if one derives from DrawingArea, which 
> may not be always expedient.
> 
> Are there any other advantages and disadvantages?
> 
> And are there any subtle semantic differences between the two ways? I would 
> assume that overriding the signal method somehow causes the signal to be 
> connected behind the scenes, though I have no clue how that would be done.
> 

One difference from connecting versus deriving is that with connecting,
it is possible to use connect_notify() instead of connect() which allows
controlling whether the handler will be called before or after the
default signal handler:

http://library.gnome.org/devel/glibmm/unstable/classGlib_1_1SignalProxy1.html#a1dd40d7c3475124bb78053805fbde3f8

> 
> 
> 
> 
> ----- Original Message ----
> From: José Alburquerque <jaalburquer...@cox.net>
> To: Piscium <grok...@yahoo.ie>
> Cc: gtkmm-list@gnome.org
> Sent: Mon, 10 May, 2010 21:30:55
> Subject: Re: explicit signal connection vs. overriding function
> 
> On Mon, 2010-05-10 at 19:57 +0000, Piscium wrote: 
> > This begs the question: are the two methods of handling signals equivalent? 
> > Is it always possible to choose either of them?
> > 
> 
> Yes, there are two methods.  Classes that are derived from Glib::Object
> that have signals such as signal_signalname() (which can be connected
> to) also have virtual methods such as on_signalname().  If that class is
> overridden, overriding the on_signalname() is another way of handling
> the signal.
> 

-- 
José

_______________________________________________
gtkmm-list mailing list
gtkmm-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtkmm-list

Reply via email to