… | |
… | |
288 | } |
288 | } |
289 | |
289 | |
290 | sub connect { |
290 | sub connect { |
291 | my ($self, $signal, $cb) = @_; |
291 | my ($self, $signal, $cb) = @_; |
292 | |
292 | |
293 | push @{ $self->{cb}{$signal} }, $cb; |
293 | push @{ $self->{signal_cb}{$signal} }, $cb; |
294 | } |
294 | } |
295 | |
295 | |
296 | sub emit { |
296 | sub emit { |
297 | my ($self, $signal, @args) = @_; |
297 | my ($self, $signal, @args) = @_; |
298 | |
298 | |
|
|
299 | for my $cb (@{$self->{signal_cb}{$signal} || []}) { |
299 | $_->($self, @args) |
300 | $cb->($self, @args); |
300 | for @{$self->{cb}{$signal} || []}; |
301 | } |
301 | } |
302 | } |
302 | |
303 | |
303 | sub DESTROY { |
304 | sub DESTROY { |
304 | my ($self) = @_; |
305 | my ($self) = @_; |
305 | |
306 | |