On Nov 6, 2010, at 7:53 AM, Zettai Muri wrote: > Hi All, > > Am trying to connect to events again and this time in a Gtk2::EntryCompletion. > > I have borrowed some of the code from: > http://www.koders.com/perl/fidB8CEA21DDF39929C30B4914E5CD897D03858890E.aspx?s=gtk2#L14 > > Below is what I have so far:
I've added inline the changes you need to make it work. > #!/usr/bin/perl > package main; > > use strict; > use Gtk2 -init; use Glib ':constants'; > # Read in glade file with gui > my $builder = Gtk2::Builder->new; > $builder->add_from_file("EntryCompletion.glade"); > > my $main_window; > my $entry; retrieve_widgets (); > # Create the completion object > my $completion = Gtk2::EntryCompletion->new; > > # Assign the completion to the entry > $entry->set_completion ($completion); > > # Create a tree model and use it as the completion model > $completion->set_model (create_completion_model ()); > > # Use model column 0 as the text column > $completion->set_text_column (0); > > &connect_signals; > > # Maximise window > #$main_window->maximize; > > # Run main loop. > Gtk2->main; > > sub retrieve_widgets > { > # Get Widgets from gui file > $main_window = $builder->get_object('window1') || die "Can't find > window.\n"; > $entry = $builder->get_object('entry1') || die "Can't find window.\n"; > } > > sub connect_signals > { > # Quit when user clicks on the close button/alt-f4 etc. > $main_window->signal_connect (destroy => sub { Gtk2->main_quit; }); # according to the gtk source, the cursor-on-match signal # will be emitted only if the completion's inline-selection # property is set to true. $completion->set (inline_selection => TRUE); > $completion->signal_connect('cursor-on-match' => sub { > > print("Cursor on Match\n"); # This is an event signal and must return TRUE if the event # was handled or FALSE to let the default behavior go. return FALSE; > }); > } > > # Creates a tree model containing the completions > sub create_completion_model { > my $store = Gtk2::ListStore->new (Glib::String::); > > # Append one word > $store->set ($store->append, 0, "GNOME"); > > # Append another word > $store->set ($store->append, 0, "total"); > > # And another word > $store->set ($store->append, 0, "totally"); > > return $store; > } > > I'm just trying to get the cursor-on-match event to trigger my print > statement. > > I was under the impression that the following would trigger the event: > 1. In the entry field type 'to' (without the quotes). > 2. This brings up the EntryCompletion and shows 'total' and 'totally' > 3. Using the up and down arrow keys you can highlight the possible matches. > - At this point as I moved the selection up and down I thought this > would trigger the 'cursor-on-match' event. However I'm not getting > anything printed to my screen. > > Is someone able to tell me how I match this event? > > Have attached the glade file if that helps. > <EntryCompletion.glade> -- It's all very complicated and would take a scientist to explain it. -- MST3K _______________________________________________ gtk-perl-list mailing list gtk-perl-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-perl-list