http://www.perlmonks.org?node_id=991130


in reply to Re: Gtk2::Entry scroll-event
in thread Gtk2::Entry scroll-event

I'm trying to reach this event object.
Navigating the documentation is beeing a little bit difficult.
Somebody can give me a hint about how can I refer to a not explicitly instantiated event ?

my $imp_entry = Gtk2::Entry->new_with_max_length( 6 ) ; ... $imp_entry->signal_connect( 'scroll-event' => sub { # if($imp_entry->scroll-event->direction() eq 'up'){} !?!? $imp_entry->set_text( $imp_entry->get_text() + 0.05 ) ; } ) ;
i.e.: as in the Gtk2::Gdk::Event::Scroll doc :
METHODS ... scrolldirection = $eventscroll->direction ($newvalue=0)
What $eventscroll ? Thanks for your attention.

Replies are listed 'Best First'.
Re^3: Gtk2::Entry scroll-event
by Anonymous Monk on Sep 01, 2012 at 07:40 UTC

    I'm trying to reach this event object. Navigating the documentation is beeing a little bit difficult. Somebody can give me a hint about how can I refer to a not explicitly instantiated event ?

    I imagine it would be covered in some introductory tutorial (even if it is for the c++)

    Luckily http://search.cpan.org/grep?cpanid=TSCH&release=Gtk2-1.245&string=event&i=1&n=1&C=0 showed

    110: # warn Gtk2->get_current_event;

    Which worked for me

    #!/usr/bin/perl -- use Gtk2 -init; # Gtk2->init; works if you didn't use -init on use my $window = Gtk2::Window->new ('toplevel'); my $button = Gtk2::Button->new ('Quit'); $button->signal_connect (clicked => sub { warn "@_"; warn Gtk2::Gdk::Event->get; warn Gtk2->get_current_event; Gtk2->main_quit }); $window->add ($button); $window->show_all; Gtk2->main; __END__ Gtk2::Button=HASH(0xc6f164) at - line 7. Warning: something's wrong at - line 8. Gtk2::Gdk::Event::Key=SCALAR(0xa18d94) at - line 9.
      103:isa_ok ($event = Gtk2::Gdk::Event->new ('scroll'), 104: 'Gtk2::Gdk::Event::Scroll', 'Gtk2::Gdk::Event->new scroll'); 106:$event->direction ('down'); 107:is ($event->direction, 'down', '$scroll_event->direction'); 109:$event->device ($device);
      Fine! it is!
      $imp_entry->signal_connect( 'scroll-event' => sub { my $eventscroll = Gtk2->get_current_event ; my $scrolldirection = $eventscroll->direction() ; if( $scrolldirection eq 'up' ) { $imp_entry->set_text( $imp_entry->get_text() - 1 ) ; } elsif( $scrolldirection eq 'down' ) { $imp_entry->set_text( $imp_entry->get_text() + 1 ) ; } return FALSE ; } ) ;
      Thank You very much, Your Anonymous Wisdom, and all the Fatherhood.