#! perl package some_plugin; use Gtk2::CV::Plugin; sub new_imagewindow { my ($self, $image) = @_; warn "new_imagewindow(@_)\n"; } sub new_schnauzer { my ($self, $schnauzer) = @_; warn "new_schnauzer(@_)\n"; $schnauzer->signal_connect (key_press_event => sub { my ($self, $event) = @_; my $key = $_[1]->keyval; my $state = $_[1]->state; my $ctrl = grep $_ eq "control-mask", @{$_[1]->state}; if ($ctrl && $key == $Gtk2::Gdk::Keysyms{c}) { warn "pressed ctrl-c\n"; } else { return 0; } 1 }); $schnauzer->signal_connect (popup => sub { my ($self, $menu, $cursor, $event) = @_; $menu->append (my $item = new Gtk2::MenuItem "select me"); $item->signal_connect (activate => sub { warn "activated menu\n" }); }); } 1