Dave Moore wrote:
>> this is more clear. the New Event Model I'm trying to build will
>> pass a reference to the object that fired the event as its first
>> parameter, so this issue will be solved.
>
> that will be nice, but there is still the issue of name space.
> having to name each control in some sort of global space...ie.
>
> $MW->Button(Name => 'MyButton1');
>
> gets hard to keep track when you want to break your program into
> objects or even if it gets really big. i dont know how else you
> could do it though.
but with the New Event Model (codename 'NEM') you don't need a name
at all.
> and seeming as how the topic was event handlers, i think it would
> be cool if i could say:
>
> my $btn = $MainW->Button();
> $btn->add_handler('Click', \&some_sub);
>
> sub some_sub {
> my ($object, $event) = @_;
> }
>
> instead of making a subroutine with Name_Click. it would clean up
> all my scripts alot. for eg cancel buttons all do the same thing.
> its easier to register a routine for your events than to declare a
> subroutine that calls a subroutine.
>
> just my humble opinion
that's exactly what the NEM stands for. right now, the synopsis is:
$MainW->AddButton(
-text => "Click Me",
-pos => [ 50, 50 ],
-events => {
-Click => \&some_sub,
# or
# -Click => "some_sub",
# or
# -Click => sub { print 'I got a click!'; }
},
);
there will be, of course, a method to add, change and remove events
after the object creation. the latest version on CVS does already
support the synopsis above; I'm having serious problems supporting
a NEM for menus :-(
if someone wants to help me with this just ring the bell...
cheers,
Aldo
__END__
$_=q,just perl,,s, , another ,,s,$, hacker,,print;