Gtk2-Ex-Dragger

 view release on metacpan or  search on metacpan

devel/run.pl  view on Meta::CPAN

       my ($area, $event) = @_;
       if ($event->keyval == Gtk2::Gdk->keyval_from_name('Page_Down')) {
         $vadj->set_value (min ($vadj->upper - $vadj->page_size,
                                $vadj->value + $vadj->page_increment));

       } elsif ($event->keyval == Gtk2::Gdk->keyval_from_name('Page_Up')) {
         $vadj->set_value (max ($vadj->lower,
                                $vadj->value - $vadj->page_increment));

       } elsif ($event->keyval == Gtk2::Gdk->keyval_from_name('Down')) {
         $vadj->set_value (min ($vadj->upper - $vadj->page_size,
                                $vadj->value + $vadj->step_increment));

       } elsif ($event->keyval == Gtk2::Gdk->keyval_from_name('Up')) {
         $vadj->set_value (max ($vadj->lower,
                                $vadj->value - $vadj->step_increment));


       } elsif ($event->keyval == Gtk2::Gdk->keyval_from_name('Left')) {
         $hadj->set_value (min ($hadj->upper - $hadj->page_size,
                                $hadj->value + $hadj->step_increment));

       } elsif ($event->keyval == Gtk2::Gdk->keyval_from_name('Right')) {
         $hadj->set_value (max ($hadj->lower,
                                $hadj->value - $hadj->step_increment));

       }
       return 0; # propagate
     });
}

$area->add_events ('button-press-mask');
$area->signal_connect (button_press_event =>
                       sub {
                         my ($widget, $event) = @_;
                         print "$progname: start button press on $widget\n";
                         if ($sleep) {
                           print "$progname: sleep 1\n";
                           sleep 1;
                         }
                         make();
                         print "$progname: start now 1\n";
                         $dragger->start ($event);
                         return 0; # propagate
                       });

$toplevel->show_all;

### $dragger
### area events: $area->window->get_events.''
Gtk2->main;
exit 0;


__END__


=head1 BUGS

There's no C<notify> signal if the C<widget> property becomes C<undef> due
to weakening.



( run in 0.808 second using v1.01-cache-2.11-cpan-5c0b1e786e0 )