* Jürg Billeter wrote, On 15/07/08 12:13:
> On Tue, 2008-07-15 at 11:11 +0100, Sam Liddicott wrote:
>   
>> * Ali Sabil wrote, On 15/07/08 10:47: 
>>     
>>> Signal handler always have the "signal sender" as 1st parameter, in
>>> this case it would be the AdvancedSample instance from which the
>>> "foo" signal originated.
>>>
>>> I proposed the "sender" keyword inside signal handler context (just
>>> like the "this" keyword inside the object instance context) to
>>> eliminate this confusing parameter a while ago, but it didn't seem
>>> like a good idea for many people.
>>>
>>>       
>> Hmmm... this makes me feel uncomfortable in the same way the glade
>> example callbacks make me feel uncomfortable, there seem to be
>> implicit parameters which are not defined in the prototypes, you just
>> have to "know", the s was not referenced in the foo signal declaration
>> either. 
>>     
>
> The issue is that the sender parameter, that all signal handlers have,
> is not a signal parameter, it's really just a signal handler parameter.
> When emitting the signal (and soon also in virtual signal methods),
> there is no sender parameter as `this` is the same as the sender.
>
> I don't quite understand what exactly makes you feel uncomfortable, the
> fact that you don't have to specify the sender when declaring the
> signal, the proposed sender keyword, or something else?
>   

The fact that I can't tell by looking at the code declarations that I
have to have sender as the first parameter (or is it the last?)

>> Is this anonymous signal handler invoked as a flat function or method?
>> Does "this" have a value (I guess it does or the use of name would
>> fail) in which case, surely s must be declared somewhere else...
>>     
>
> It's invoked as an instance method. The example is a bit special in that
> the same instance emits and handles the signal. In general `this` and
> the sender are two separate objects. `s.name`, `this.name`, and `name`
>   
Would it have been possibly to declare a class-less anonymous function
at that point?

Sam

_______________________________________________
Vala-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/vala-list

Reply via email to